1

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し、ノード サーバーで承認されたハンドシェイクを確認できます。

4

1 に答える 1

0

クライアント側でこれを試してください:)

var socket = io.connect(' https://localhost ', { パス: '/node/socket.io' });

これにも問題がありますが、パスを指定して、クライアントが次のようなものにリクエストを送信しないようにする必要があります。

GET https://localhost/socket.io/?__sails_io_sdk_version=0.11.0&__sails_io_sdk_p…sails_io_sdk_language=javascript&EIO=3&transport=polling&t=1432066804506-0 504 (Gateway Time-out)

特に、次のようにしたいので(/nodeに注意してください):

GET https://localhost/node/socket.io/?__sails_io_sdk_version=0.11.0&__sails_io_sdk_p…sails_io_sdk_language=javascript&EIO=3&transport=polling&t=1432066804506-0 504 (Gateway Time-out)
于 2015-05-19T20:23:32.497 に答える