在代理后面运行Express在代理后面运行Express应用程序时,将应用程序变量信任代理设置(通过使用app.set())为下面列出的值之一.如果未设置应用程序变量信任代理,应用程序不会失败,但除非配置信任代理,否则它将错误地将代理的IP地址注册为客户端IP地址。类型:布尔值如果为真,则客户端的IP地址被理解为X-Forwarded-*标头中最左边的条目。如果为false,应用程序知道它直接面向Internet,并且客户端的IP地址来自req.connection.remoteAddress,这是默认值。类型:IP地址IP地址、子网或IP地址数组以及要信任的子网,以下列表显示了预先配置的子网名称:loopback—127.0.0.1/8,::1/128linklocal—169.254.0.0/16,fe80::/10uniquelocal—10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,fc00::/7您可以通过以下任何方式设置IP地址:app.set('trustproxy','loopback')//指定单个子网app.set('trustproxy','loopback,123.123.123.123')//指定子网和地址app.set('trustproxy','loopback,linklocal,uniquelocal')//指定多个子网为CSVapp.set('trustproxy',['loopback','linklocal','uniquelocal'])//指定多个子网为数组后,会根据地址确定IP地址或子网排除,将离应用服务器最近的非信任IP地址确定为客户端IP地址。类型:Number信任来自转发代理服务器的第n跳作为客户端。类型:函数自定义信任实现,仅当您知道自己在做什么时才使用它。app.set('trustproxy',function(ip){if(ip==='127.0.0.1'||ip==='123.123.123.123')returntrue//trustedIPselsereturnfalse})enabletrust代理有以下作用:req.hostname的值来源于X-Forwarded-Host头中设置的值,可以由客户端设置,也可以由代理设置。X-Forwarded-Proto可以通过反向代理设置来告诉应用程序它是https还是http甚至是一个无效的名称,该值由req.protocol反映。req.ip和req.ips值由来自X-Forwarded-For的地址列表填充。信任代理设置是使用proxy-addr包实现的,请参阅其文档以获取更多信息。上一篇:调试
