注册
登录
提问时间:2016/6/7 16:00:22
我在nginx里配置url rewrite时,要让浏览器地址栏的URL保持不变,用proxy_pass做反向代理,可是我发现每次都会生成一个新的jsessionid,我的配置表具体如下:
server {
listen 80;
server_name www.domain.com;


location =/ {
rewrite ^/(.*) /zk/user/index.action break;
proxy_pass http://www.domain.com;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
chunked_transfer_encoding off;
}

location / {
proxy_pass http://www.domain.com:8080;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
chunked_transfer_encoding off;
}
}
大家说要怎么样才能在用proxy_pass的时候不会生成新的jsessionid呢?
1楼(未知网友)

我估计是因为反向代理到了另一个host(你看看你例子里的http://domain.com),这个host跟nginx所在的host不一样,所以tomcat(jsessionid是tomcat里的吧?)对http://domain.com写的cookie在通过nginx传回时被ignore了。建议你研究下这个:Module ngx_http_proxy_module(关键字:proxy_cookie_domain)
立即注册站大爷用户,免费试用全部产品
立即注册站大爷用户,免费试用全部产品