nginx代理服务器配置
vi /etc/nginx/nginx.conf
在http模块下添加:
upstream webserver {
server 172.16.31.66 max_fails=1 fail_timeout=30;
server 172.16.31.208 max_fails=1 fail_timeout=30;
}
说明:
webserver为需要代理的集群名字(随便取)
server后面接的是后端具体服务器的IP地址,默认为80端口,如果是其他端口需要改成:172.16.31.66:8000
weight设置服务器权重值,默认值为1,越大处理的请求越多
max_fails设置最大失败次数
fail_timeout设置失败超时时间,单位为秒,每隔多长时间去检测
关闭代理服务器的访问日志
注释掉access_log /var/log/nginx/access.log main;这行
添加access_log nul;
在proxy_pass下添加如下行
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-ForZZwarded-Proto $scheme;
proxy_connect_timeout 10;
proxy_redirect default;
重启nginx服务
如果后端是nginx做WEB服务器,那么不需要做任何配置,就能在访问日志里看到真实IP
如果后端服务器是httpd,需要修改日志格式为
vim /etc/httpd/conf/httpd.conf
LogFormat "%{X-Real-IP}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
如果后端是tomcat,需要修改conf/server.xml的日志格式为
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%{X-FORWARDED-FOR}i %l %u %t %r %s %b %D %q %{User-Agent}i %T" resolveHosts="false"/>
重启tomcat,查看访问日志文件