【发布时间】:2013-08-07 00:23:30
【问题描述】:
我们有 Grails 应用程序在 Tomcat 上运行。 Nginx 将所有对 80 端口的请求重定向到 8080。 为了我们应用的安全性,我们使用 Spring Security。
所以问题是:当用户成功登录应用程序时,它必须重定向到另一个页面,但它没有发生。
在 Chrome 浏览器中没有任何反应,在 Firefox 页面中显示“损坏的内容错误”。
直接访问8080端口的应用没有问题。 当我使用 jsessionid 手动删除 cookie 时,问题也消失了,但在第一次重定向后它再次出现并且问题在同一个地方。
nginx 配置:
server {
limit_conn addr 10;
listen externalIp:80;
server_name serverName;
root /var/ut/;
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass_header Set-Cookie;
proxy_pass_header P3P;
}
}
【问题讨论】:
-
配置看起来不错。您可以将 127.0.0.1 替换为 localhost。尝试使用听 80;而不是外部IP:80。如果这不起作用,请检查您的 nginx 版本。
标签: java grails nginx spring-security