Jul 172008
(这是我在去年12月的时候查到的资料,不知道现在nginx的文档有没有更完善)
通常我们会在web server前面部署squid,这个时候web server的所有请求都是来自squid,那我们的web server的日志记录到的所有请求都是squid服务器的IP。这个时候,我们会让squid发出一个X-Forwarded-For的header包含真正客户端的IP,我们需要修改web server的日志记录字段用header X-Forwarded-For代替remote_ip,apache的修改方法很简单,这里就不说了。
这里要说的是nginx的修改方法,其实原理很简单,但是nginx的文档里面完全没有提及怎么拿某个header,ft。最后还是在maillist找到答案的
http://thread.gmane.org/gmane.comp.web.nginx.english/944/focus=946
All client headers are available as $http_… variables.
For example, “X-Strange-Header” as $http_x_strange_header.
剩下的就很简单了
nginx前面放squid就浪费nginx的性能了,应该尝试是用nginx+memcached来替代squid
如果nginx前面只有一台squid当然没有必要,如果是10几台squid,并且在多个不同的机房,就有必要了
没看明白怎么设置,有没有具体的配置?
将 log_format 的 $remote_addr 改成 $http_x_forwarded_for
赞~~