首先,作为loadblance的nginx需要添加下面的配置:
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
X-Real-IP和X-Forwarded-For可以2选1,也可以都打开。
然后:
1.如果backend是apache时:apache需要添加模块rpaf
http://stderr.net/apache/rpaf/
可以用于apache 2.2
Compile and Install for 1.3:
apxs -i -a -c mod_rpaf.c
Compile and Install for 2.0:
apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
or simply try:
make
Configuration Directives:
RPAFenable On
# Enable reverse proxy add forward
RPAFproxy_ips 127.0.0.1 10.0.0.1
# which ips are forwarding requests to us
RPAFsethostname On
# let rpaf update vhost settings
# allows to have the same hostnames as in the "real"
# configuration for the forwarding Apache
RPAFheader X-Forwarded-For
# Allows you to change which header mod_rpaf looks
# for when trying to find the ip the that is forwarding
# our requests
# if DSO load module first: LoadModule rpaf_module libexec/apache2/mod_rpaf-2.0.so RPAFenable On RPAFsethostname On RPAFproxy_ips 192.168.1.23 (nginx loadblance server) RPAFheader X-Forwarded-For
2.如果是nginx做为backend的话:
作为backend的nginx在编译时需要添加模块
--with-http_realip_module
并修改nginx.conf:
real_ip_header X-Real-IP;
context为: http, server, location
更多内容,请参考:
http://wiki.nginx.org/NginxHttpRealIpModule
在不停止服务的情况下加载nginx的新配置,有以下两种方法:
方法一
nginx -t;
nginx -s reload
方法二
nginx -t;
kill -HUP <nginx_master_process_pid>
备注:nginx -t 检查nginx配置的语法,操作前都要检查一下,很重要,发现错误可及时修正。
nginx默认是不允许列出整个目录的,但有时工作需要,非要让列出整个目录文件列表,下面为大家介绍如何开启Nginx的目录文件列表功能?
打开nginx.conf文件,在location server 或 http段中加入
autoindex on;
另外两个参数最好也加上去:
autoindex_exact_size on;
显示出文件的确切大小,单位是bytes。
改为off后,显示出文件的大概大小,单位是kB或者MB或者GB
autoindex_localtime on;
默认为off,显示的文件时间为GMT时间。
改为on后,显示的文件时间为文件的服务器时间。
详细内容,可以参考:http://wiki.nginx.org/NginxChsHttpAutoindexModule