资讯专栏INFORMATION COLUMN

Express 文档(在代理后面运行Express)

MAX_zuo / 3299人阅读

摘要:在代理后面运行在代理后面运行应用程序时,将通过使用应用程序变量设置为下面列出的值之一。类型信任来自前置代理服务器的第跳作为客户端。设置使用包实现,有关更多信息,请参阅其文档。

在代理后面运行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://www.ucloud.cn/yun/100483.html

相关文章

  • Express 文档(调试)

    摘要:调试在内部使用模块来记录有关路由匹配正在使用的中间件函数应用程序模式以及请求响应周期流的信息。在上,使用相应的命令。生成的应用程序命令生成的应用程序也使用模块,其的命名空间的范围限定为应用程序的名称。 调试Express Express在内部使用debug模块来记录有关路由匹配、正在使用的中间件函数、应用程序模式以及请求—响应周期流的信息。 debug就像是console.log的增强...

    琛h。 评论0 收藏0
  • Express 文档(目录)

    摘要:文档基于的快速开放极简主义的框架,是一个最小且灵活的应用程序框架,为和移动应用程序提供了一组强大的功能。借助无数的实用程序方法和中间件,你可以快速轻松地创建强大的。提供了一层轻薄的基本应用程序功能,而不会隐藏你熟悉和喜爱的功能。 Express 文档 基于Node.js的快速、开放、极简主义的Web框架,Express是一个最小且灵活的Node.js Web应用程序框架,为Web和移动...

    马忠志 评论0 收藏0
  • ngrok+express解决本地环境中微信接口调试问题

    摘要:在微信项目的开发中,经常需要对微信提供的接口进行调试,比如说录音分享上传图像等接口,但是微信要求绑定安全域名才能使用其提供的一系列功能而在开发环境中使用或者本地无法完成域名的认证和绑定所以无法在本地调试。 在微信项目的开发中,经常需要对微信jssdk提供的接口进行调试,比如说录音, 分享 ,上传图像等接口,但是微信jssdk要求绑定安全域名才能使用其提供的一系列功能 , 而在开发环境中...

    luffyZh 评论0 收藏0
  • Node中间层实践(二)——搭建项目框架

    摘要:项目地址脚手架使用过,的同学都清楚,官方推荐的安装方式是通过专用的来快速搭建一个由编译打包的项目框架。用在层的模块化,在中间层实现了模块化。这样,从中间层到前端都实现了热加载。 版权声明:更多文章请访问我的个人站Keyon Y,转载请注明出处。 项目地址:https://github.com/KeyonY/NodeMiddle 脚手架? 使用过angular2,vue2的同学都清楚,官...

    DrizzleX 评论0 收藏0
  • 九种 “姿势” 让你彻底解决跨域问题

    摘要:什么是跨域当协议域名端口号,有一个或多个不同时,有希望可以访问并获取数据的现象称为跨域访问,同源策略限制下都是不支持跨域的。命名是随意的,只要是符合一级域名与二级域名的关系即可,然后访问。 showImg(https://segmentfault.com/img/remote/1460000018998493); 阅读原文 同源策略 同源策略/SOP(Same origin pol...

    charles_paul 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<