我有一个Rails应用程序作为API,一个Nuxt.js (Vue.js)应用程序作为前端客户端。
我现在在本地为他们服务。Rails运行在端口3000
上,Nuxt.js运行在端口4000
上
让我的/etc/hosts
设置到域名:api.todos.test
for Rails和todos.test
for Nuxt.js
我的NGINX吐露如下:
upstream rails_api {
server 127.0.0.1:3000;
}
server {
listen 80;
listen [::]:80;
server_name ~^(?<subdomain>.+)\.todos.test;
location ~ ^/rest/ {
proxy_pass http://rails_api;
proxy_set_header Real-IP $remote_addr;
proxy_set_header Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header NginX-Proxy true;
proxy_set_header Host $subdomain.todos.test:3000;
proxy_pass_header Set-Cookie;
proxy_redirect off;
}
location / {
proxy_pass http://todos.test:4000;
proxy_set_header Real-IP $remote_addr;
proxy_set_header Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header NginX-Proxy true;
proxy_set_header Host $host;
proxy_redirect off;
}
}
我可以同时访问两个服务器,所以NGINX正在处理代理。我的Rails API用Set-Cookie: _session_id=...
返回一个响应,但出于某种原因,它从未在Chrome中设置过。
我在NGINX做错什么了吗?
发布于 2020-08-06 16:45:19
似乎在使用NGINX (或者任何反向代理)时,当从服务器发送它时,必须在cookie中设置domain
。
发布于 2020-08-06 15:34:00
您是否将XHR请求发送到Rails API?
由于安全原因,浏览器不能访问第三方cookie,比如从ajax请求中接收的cookie。
你可以手动获得/设置曲奇。请把这个问题提出来。How to get a cookie from an AJAX response?
https://stackoverflow.com/questions/63292942
复制