0
我的應用程序體系結構在這裏。Socket.io設置cookie與nginx
- 前端服務器3000 - domain.com,提供文件到瀏覽器
- API服務器3001 - api.domain.com
- 插槽服務器3003 - io.domain.com
在開發者模式,插座的要求都http請求的cookie,
但在生產模式的nginx(降至CONF),
插座餅乾只是有一個cookie IO
這是nginx的配置(插座服務器的一部分)。
server {
server_name io.domain.com;
location/{
include proxy_params;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-NginX-Proxy true;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwared-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_pass http://127.0.0.1:3003;
}
location /socket.io/ {
include proxy_params;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-NginX-Proxy true;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwared-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_pass http://127.0.0.1:3003;
}
}
這裏是套接字客戶端
const io = require('socket.io-client');
let socket;
if (process.env.NODE_ENV === 'production') {
socket = io.connect('http://io.domain.com/noti');
} else {
socket = io.connect('http://localhost:3003/noti');
}
module.exports = socket;
在發展包膜,它工作得很好,但因爲這個問題的生產模式,我不能檢索用戶的值。
我需要使用cookie值sessionId,令牌爲auth,但兩個cookie值消失。
它有什麼問題?