客户端请求经过nginx获取请求头Host
背景
目前项目部署正式环境前端请求会走 nginx, 反向代理到真正的后台服务机器. 最近刚弄完 node 的鉴权中间件, 其中遇到获取请求头host
信息是127.0.0.1:xxxx
无法获取真实请求 ip 或域名的情况, 解决后做个记录.
解决方法
先说解决方法, 因为 nginx 默认是不会透传客户端的请求头信息的, 所以需要自己在 nginx 的配置文件中添加下, 找到对应匹配的 location, 以下是实例:
1 |
|
衍生操作
如果用户请求直达服务想获取用户的 ip 该怎么做呢?
明天试一试, to be continued;
如果通过 nginx 转发的服务想获取用户的 ip 该怎么做呢?
目前 nginx 代理服务器都支持转发请求头X-Real-IP
和X-Forwarded-For
,
小技巧
我不知道有没有人和我一样死活记不住 nginx.conf 的路径 🤦🏻♀️mac 和 linux 上的路径还不一样 🤦🏻♀️ 可以通过nginx -V
查看 nginx 相关的文件路径, 其中最常用的--conf-path
就是 nginx 的配置文件, --http-log-path
是 nginx 所有的日志, --error-log
是 nginx 的错误日志
1 |
|
reference
客户端请求经过nginx获取请求头Host
https://mariana-yui.github.io/2022/05/15/2022-05-27-get-host-forward-nginx/