Webアプリのすべての静的コンテンツを提供するnginxサーバーがあります。このアプリは、node.jsunsingsocket.ioに実装されているWebSocketを利用します。node.jsバックエンドはポート8000でリッスンしています。
静的に配信されたドキュメント内にポート8000経由でsocket-io.jsファイルを含めると、すべて正常に機能しますが、ポート8000内部を処理するプロキシとしてnginxを使用する方法について読んだことがあります。
だから私はこれらのような設定を構築しました:
server {
server_name domain.com;
access_log /var/log/nginx/domaim.com.log;
location / {
root /home/app/static/;
}
location /socket/ {
proxy_pass http://127.0.0.1:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
次に、domain.com / socket /を介してsocket.ioにアクセスできます(「Welcometosocket.io」というメッセージが表示されます)。また、静的コンテンツが配信されますが、ポート80を介して「socket.io/socket.io.js」ファイルをロードする方法が見つかりません。
それはきれいな方法で可能ですか?