最近,JBolt开发平台用户在部署自己项目的时候,使用Nginx做映射,自己去配置的时候,遇到了登录跳转和session cookie失效的问题。
最终原因是Nginx在映射域名和对应的jfianl项目是没有将Proxy设置全。
之前,我录制过一个视频教程,专门讲解JFinal+nginx+undertow去绑定域名,多端口,多项目映射部署。
教程地址:http://www.jfinal.com/share/1625
其中就提到了Nginx映射问题:在这里再贴出来
server {
listen 80;
server_name demo.jbolt.cn;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://127.0.0.1:8082;
proxy_connect_timeout 300s;
proxy_send_timeout 900;
proxy_read_timeout 900;
proxy_buffer_size 32k;
proxy_buffers 4 64k;
#proxy_buffering off;
proxy_busy_buffers_size 128k;
proxy_redirect off;
proxy_hide_header Vary;
proxy_set_header Accept-Encoding '';
proxy_set_header Referer $http_referer;
proxy_set_header Cookie $http_cookie;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}其中,这一块儿就是问题所在:
proxy_set_header Referer $http_referer; proxy_set_header Cookie $http_cookie; 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映射转发后,cookie session保持住 后端handler去获取真实过来的IP URL 都可以了。
如果各位部署后遇到无法登陆,或者登陆后没法保持cookie session ,或者配置https后 有些资源失效问题,都可以nginx的配置上调整。
如果是https的话,需要设置这个属性:
proxy_set_header X-Forwarded-Proto https;
【资源推荐】
JFinal新版sql模板有两种Template的调用方式,你学会了吗?
【系统介绍与演示】
JBolt1.8发布,支持模板指令Html标签外加Bootstrap代码提示,甚爽!
【视频教程】基于JFinal-undertow的项目打包与部署(linux centos7)
有问题咨询,加我微信:
mumengmeng
