nginx1.16.1+tomcat7部署,获取前端真实IP信息
nginx与tomcat使用同一台主机,nginx服务使用80端口,转发数据到后端tomcat 8080端口。
先安装nginx软件。
下载 ngx_cache_purge_2.3源码包,并解压到当前目录。
[root@lnmp soft]# wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz
[root@lnmp soft]# tar zxvf ngx_cache_purge-2.3.tar.gz
解压LuNamp包自带的zlib源码到当前目录。
[root@lnmp soft]# tar zxvf zlib-1.2.5.tar.gz
现在可以下载nginx-1.16.1最新软件包了。
[root@lnmp soft]# wget http://mirrors.sohu.com/nginx/nginx-1.16.1.tar.gz
然后解压源包,这里就不写了。
当然还需要安装perl相关依赖包。
[root@lnmp soft]# yum install perl-devel perl-ExtUtils-Embed perl zlib zlib-devel
源码包编译安装,还是像上面的一样,把几个软件包解压后,执行编译命令,
[root@lnmp soft]# ./configure --prefix=/usr/local/nginx --with-pcre=../pcre-8.43 --with-openssl=../openssl-1.1.1d --add-module=../ngx_cache_purge-2.3 --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module
[root@lnmp soft]# make
[root@lnmp soft]# make install
现在可以修改tomcat 配置文件了
nginx 修改配置信息将80端口转换成tomcat的8080端口。
location / {
proxy_pass http://192.168.137.13:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
可以启动nginx程序了,别的配置不用修改。
/usr/local/nginx/sbin/nginx -t //检查当前配置是否正确
/usr/local/nginx/sbin/nginx -s reload //重新加载配置
然后安装tomcat7,直接下载官网软件,解压后运行就行,不再说了。
如何设置负载均衡后的Tomcat能获取用户真实IP了?
编辑 tomcat/conf/server.xml文件
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t %r %s %b" />
前面有负载均衡的时候,获取真实IP可以使用下面的配置
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%{X-Forwarded-For}i %h %l %u %t %r %s %b" /
启动tomcat后,分别访问nginx的80端口与tomcat的8080端口,查看tomcat的访问日志,
就会发现日志中的IP会不一样。
目录 返回
首页