在nginx

时间:2016-10-26 09:07:42

标签: javascript cookies nginx url-rewriting

我遇到了cookies,nginx和后端服务器的问题。

我想要达到的目标是:

NGINX AT PORT 70
location / {
If session cookie is not set
return 301 localhost/login.html
else
proxy_pass http://somewhere 
}
location /login.html{
 proxy_pass http://localhost:8080 <- backend server with logging at localhost:8080/login.html
}
location /redirection/ {
return 301 localhost:70
}

所以它应该转到login.html并代理传递给日志记录服务器,以便我获得localhost:8080 / login.html并且可以登录。然后它处理凭据并重定向到/ redirection / in form action(处理是在JavaScript中完成的 - 它实际上仅用于设置cookie)。在重定向服务器后应该向自己发送请求,但现在它有会话cookie,所以它会转到http://somewhere

但是我的问题是在login.html中应该设置cookie,但它们不是。 如果我单独去localhost:8080 / login.html并尝试 - 那么Cookie运行良好。但不知何故,proxy_pass饼干丢失了。

PS如果我在第二台服务器上使用两个服务器块和/login.html和/ redirection,它运行良好,但我的配置中不能有两个服务器块 - 我需要在一个端口上安装所有内容

1 个答案:

答案 0 :(得分:0)

嗯......我确实解决了这个问题.. 就像我说的那样是js脚本设置我的饼干。但似乎js脚本没有加载,因为它直接前进到“/”位置。我做的是:

location /js/ {
proxy_pass http://localhost:8080;
}

这一切都在发挥作用。

请记住..如果您在后端服务器上的html文件包含任何css / js文件,您需要考虑到这一点。