如何用NGINX配置反向代理?

2022-05-10 代理百科 0 0

我在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;
}
}

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

发表评论
评论列表