Express 文档(在代办背面运转Express)

在代办背面运转Express

在代办背面运转Express应用程序时,将(经由过程运用app.set())应用程序变量trust proxy设置为下面列出的值之一。

虽然假如未设置应用程序变量
trust proxy,应用程序不会运转失利,但它将毛病地将代办的IP地点注册为客户端IP地点,除非设置了
trust proxy

范例:Boolean

  • 假如为true,则客户端的IP地点被理解为X-Forwarded-*header中最左边的条目。
  • 假如为false,则应用程序理解为直接面向互联网,客户端的IP地点来自req.connection.remoteAddress,这是默认设置。

范例:IP地点

  • 要信托的IP地点、子网或IP地点和子网的数组,以下列表显现了预设置的子网称号:

    • loopback — 127.0.0.1/8::1/128
    • linklocal — 169.254.0.0/16fe80::/10
    • uniquelocal — 10.0.0.0/8172.16.0.0/12192.168.0.0/16fc00::/7
  • 你能够经由过程以下任何体式格局设置IP地点:

    app.set('trust proxy', 'loopback') // specify a single subnet
    app.set('trust proxy', 'loopback, 123.123.123.123') // specify a subnet and 
    an address
    app.set('trust proxy', 'loopback, linklocal, uniquelocal') // specify 
    multiple subnets as CSV
    app.set('trust proxy', ['loopback', 'linklocal', 'uniquelocal']) // specify 
    multiple subnets as an array
  • 指定后,IP地点或子网将从地点肯定过程当中消除,并将离应用服务器近来的不可托IP地点肯定为客户机的IP地点。

范例:Number

  • 信托来自前置代办服务器的第n跳作为客户端。

范例:函数

  • 定制信托完成,只要在你晓得本身在做什么的情况下才运用它。

    app.set('trust proxy', function (ip) {
     if (ip === '127.0.0.1' || ip === '123.123.123.123') return true // trusted IPs
     else return false
    })

启用trust proxy会发生以下影响:

  • req.hostname的值派生自X-Forwarded-Host header中设置的值,该值可由客户端或代办设置。
  • 能够经由过程反向代办设置X-Forwarded-Proto来通知应用程序它是https照样http以至是无效的称号,该值由req.protocol反应。
  • req.ipreq.ips值运用X-Forwarded-For的地点列表添补。

trust proxy设置运用proxy-addr包完成,有关更多信息,请参阅其文档。

上一篇:调试

    原文作者:博弈
    原文地址: https://segmentfault.com/a/1190000017542031
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞