0
私のアプリのアーキテクチャはこちらです。Socket.ioはnginxでクッキーを設定しました
- フロントサーバ3000 - domain.com、ブラウザ
- APIサーバ3001にファイルを提供 - api.domain.com
- ソケット・サーバー3003 - io.domain.com
、すべてのHTTP要求のクッキーを持って
しかし、(confにまで)のnginxと生産モードでは、
ソケットクッキーはちょうどこれはnginxのconfに(ソケットサーバーの一部)であるPROD
- IOクッキーを持っています。ここで
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; } }
はソケットクライアントが開発ENVで
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;
あり、それは問題のためだけでなくしかし、プロダクションモードで動作しますが、私は、ユーザーの値を取得することはできません。
トークンをauthにするためにsessionIdというクッキー値を使用する必要がありますが、2つのクッキー値は消えています。
どうしたのですか?