Node.js 使用cookies Nginx的路由流量
我第一次尝试设置nginx。 我有以下问题要解决 我有两个版本的后端v1和v2 用户被路由到/v2代理_pass“127.0.0.1:3000;” tru/javascript+套接字流量已路由到同一服务器“127.0.0.1:3000;”看着饼干 这是我的问题,cookie不存在,因此将返回404 有什么建议吗Node.js 使用cookies Nginx的路由流量,node.js,cookies,nginx,Node.js,Cookies,Nginx,我第一次尝试设置nginx。 我有以下问题要解决 我有两个版本的后端v1和v2 用户被路由到/v2代理_pass“127.0.0.1:3000;” tru/javascript+套接字流量已路由到同一服务器“127.0.0.1:3000;”看着饼干 这是我的问题,cookie不存在,因此将返回404 有什么建议吗 map $cookie_version $site_version { default ""; "v1" "version=v1;Domain=localho
map $cookie_version $site_version {
default "";
"v1" "version=v1;Domain=localhost;Path=/";
"v2" "version=v2;Domain=localhost;Path=/";
}
server {
listen 8081;
server_name localhost;
location / {
if ($cookie_version ~* "v1") {
proxy_pass http://127.0.0.1:8080;
}
if ($cookie_version ~* "v2") {
proxy_pass http://127.0.0.1:3000;
}
}
location /v1 {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_http_version 1.1;
set $cookie_version "v1";
add_header Set-Cookie $site_version;
rewrite ^/v1(.*) /$1 break;
proxy_pass http://127.0.0.1:8080;
}
location /v2 {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_http_version 1.1;
set $cookie_version "v2";
add_header Set-Cookie $site_version;
rewrite ^/v2(.*) /$1 break;
proxy_pass http://127.0.0.1:3000;
}
}
首先,阅读为什么如果是邪恶的。用地图代替。 我的建议是:
map $cookie_version $mybackend {
default "127.0.0.1:3000";
"v1" "127.0.0.1:8080";
"v2" "127.0.0.1:3000";
}
...
location / {
proxy_pass http://$mybackend;
}
...
location ~ ^/(?<cver>v[12])/ {
...
add_header Set-Cookie "version=$cver;Domain=localhost;Path=/";
rewrite ^/v[12]/(.*)$ /$1 redirect;
}
啊,谢谢。。。但是我没有保存饼干,因为我不明白的原因。有什么想法吗?你收到这个cookie表单服务器了吗?使用浏览器的开发工具进行检查。您可能会遇到麻烦,因为localhost域,请尝试类似于localhost.com的方法为其编辑主机文件