apache-2.2 – 使用Nginx/Varnish/Apache记录客户端IP
我让Nginx在端口443上侦听SSL终结器,并将未加密的流量代理到同一服务器上的Varnish. Varnish 3正在处理此流量,并且流量直接在端口80上传输.所有流量都以未加密的方式传递到群集中其他服务器上的Apache实例. Apache实例使用mod_rpaf将已记录的客户端IP替换为X-Forwarded-For标头的内容. 我的问题是,如果流量来自Nginx,而“正确的”客户端IP被记录在VarnishNCSA日志中,看起来Varnish(可以理解)用下游的127.0.0.1替换Nginx的X-Forwarded-For标头,这是用Apache记录的.是否有一个很好的简单方法来阻止Varnish重写X-Forwarded-For如果已经填充了? 最佳答案
绝对; X-Forwarded-For的Varnish处理实际上只是在默认的vcl_recv函数中定义的.
函数的默认定义始终附加到您在活动VCL文件中定义的函数,但如果定义的函数始终处理请求,则默认逻辑将永远不会执行. 沿这些行设置vcl_recv:
编辑: 由于Varnish也直接处理某些连接,因此更好的方法可能是让它有选择地设置标头.您仍然希望包含完整的vcl_recv,以便默认值不应用自己的标头,但在顶部包含此标题:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- NginX和Munin-位置和错误404
- ruby-on-rails – 如何从Nginx/Passenger中删除“X-Runtim
- ruby-on-rails – Gem:Module的未定义方法`path_separat
- Nginx重写URL没有重定向
- apache-2.2 – Virtualmin改变apache端口
- linux – 在vps上的docker容器上的输出端口的nginx / apac
- 301重定向时,nginx保留端口号
- php – docker compose问题:找不到容器命令
- ruby-on-rails – nginx limit_req速率限制的问题 – 文档
- linux – Nginx配置版本控制策略