【发布时间】:2020-11-27 06:26:52
【问题描述】:
我有一个作为 API 的 Rails 应用程序和一个作为前端客户端的 Nuxt.js (Vue.js) 应用程序。
我目前在本地为他们服务。 Rails 在端口3000 上运行,Nuxt.js 在端口4000 上运行
将我的/etc/hosts 设置为域名:api.todos.test 用于 Rails,todos.test 用于 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 中做错了吗?
【问题讨论】:
标签: ruby-on-rails google-chrome vue.js nginx nuxt.js