1、在开发SSH项目时,nginx配置服务时,没把action也配置进去,nginx没有转发action请求。
原来如下:
#JSP直接给tomcat处理,因为nginx并不是servlet容器,没办法处理JSP
location ~ .*\.(jsp|do)$ {
proxy_pass http://mysvr ;
#以下是一些反向代理的配置可删除.
proxy_redirect off;
#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header Host $host:9999;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
修改成如下(添加了action):
#JSP直接给tomcat处理,因为nginx并不是servlet容器,没办法处理JSP
location ~ .*\.(jsp|do|action)$ {
proxy_pass http://mysvr ;
#以下是一些反向代理的配置可删除.
proxy_redirect off;
#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header Host $host:9999;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
2、nginx修改不是监听80端口(默认)时,如修改成9999端口,后台获取的端口还是80端口,这个是nginx要在设置真实IP和端口时也要加上修改的端口。
原来如下:
#JSP直接给tomcat处理,因为nginx并不是servlet容器,没办法处理JSP
location ~ .*\.(jsp|do|action)$ {
proxy_pass http://mysvr ;
#以下是一些反向代理的配置可删除.
proxy_redirect off;
#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
修改后如下:#JSP直接给tomcat处理,因为nginx并不是servlet容器,没办法处理JSP
location ~ .*\.(jsp|do|action)$ {
proxy_pass http://mysvr ;
#以下是一些反向代理的配置可删除.
proxy_redirect off;
#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header Host $host:9999;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
本文介绍了在SSH项目中使用Nginx配置服务时常见的两个问题及其解决方案:一是如何正确配置Nginx以处理action请求;二是当Nginx监听端口非默认80端口时,如何设置才能使后端应用正确获取实际的客户端IP地址和端口号。
594

被折叠的 条评论
为什么被折叠?



