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,以便默认值不应用自己的标头,但在顶部包含此标题: (编辑:日照站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ruby-on-rails – 使用SSL在Nginx后面的Rails 5中的Invalid
- php-如何使用自定义Nginx配置作为官方Nginx Docker镜像?
- 套接字-SOCKET_RWGROUP = ClamAv中的后缀?
- python – uwsgi_params文件应该放在哪里以及它的扩展名是什
- 如何将此Nginx调试为uWSGI超时?
- 将Nginx修补为ip_hash 4个八位字节而不是3个
- 根据nginx中的mime类型有条件地添加expires头
- ubuntu – Nginx网站没有被拿起
- linux-以非root用户身份在Docker容器中运行nginx会导致权限
- nginx – 池www退出信号15(SIGTERM):执行超时
