2016-05-18 6 views
2

私の質問に対する答えは非常に簡単ですが、残念ながら私自身は理解できませんでした!Nginx - リバースプロキシ複数のパスを持つWebSocketサーバー

サーバーB(192.168.1.2)のWebSocketサーバーのリバースプロキシとして動作するサーバーA(192.168.1.1)でNginxを実行しています。この最後のサーバーはポート1234でリッスンし、2つのパスを持っているので、私たちは以下のアドレスに接続することができますされています

ws://192.168.1.2:1234/path1 
ws://192.168.1.2:1234/path2 

私は正常にプロキシ(WS経由パス1に接続することができました://192.168.1.1 /のWebSocket /パス1)以下の構成追加して:

location /websocket/path1 { 
    proxy_pass http://192.168.1.2:1234/path1; 
    proxy_http_version 1.1; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "upgrade"; 
} 

今、私はまた、代わりにパス2についても同様のルールを作成する第二の経路を()と一致するのに十分な、それは一般的な作りたいが、私のような何かを試してみました

location /websocket { 
    proxy_pass http://192.168.1.2:1234; 
    proxy_http_version 1.1; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "upgrade"; 
} 

しかし、このように私はWebSocketに到達することはできません。

あなたは何が間違っているか考えていますか?

ありがとうございます!それは本当に簡単だった

答えて

4

、それはURLの末尾に「スラッシュ」を置くことによって、働いていた:

location /websocket/ { 
    proxy_pass http://192.168.1.2:1234/; 
    proxy_http_version 1.1; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "upgrade"; 
} 

私はすでにそのようにしようとしたことは非常に確信していたが、私は間違っていたように思えます! :)

関連する問題