PHPリクエストがApacheサーバーに送信され、それに含まれるURLがソケットリスナーを含む8888で実行されているノードサーバーに送信されるようにnginxを構成しました。/node/
nginx.confは以下の通りです
server {
listen 80;
server_name http://domain;
location / {
proxy_pass http://localhost:8080;
}
location /node {
rewrite ^/node(.+)$ $1 break;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://localhost:8888;
}
}
ここでの問題は、socket.io request i.e io.connect('domain/node/')
「要求された URL /socket.io/1/ がこのサーバーで見つかりませんでした」というクライアントでの応答で失敗し、応答が apache から提供されていることです!!. ただし、その他のノード要求は、期待どおりにノード サーバーに送信されます。
socket.io リクエストのみが失敗します。
また、ブラウザのリクエストに見られるようにソケット接続 URL を直接実行すると、
domain/node/socket.io/1/?t=1380201512328
完全に正常に動作8wGgJYUvNdwAdcqenxQd
し、ノード サーバーで承認されたハンドシェイクを確認できます。