2013-09-26 75 views
1

到socket.io我有nginx的配置,使得任何PHP請求到達Apache服務器,並與/node/任何URL在它去上運行,包括一個套接字監聽節點服務器。無法連接通過nginx的

的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/')失敗,並在客戶端reposnse爲「請求的URL /socket.io/1/在此服務器上找到」 ,來自Apache的響應!! 但是,如預期的那樣,其他任何節點請求都會轉到節點服務器。 只有socket.io請求失敗。

另外,如果我跑插座直接連接網址作爲瀏覽器請求它看起來像
domain/node/socket.io/1/?t=1380201512328 作品完全沒有看到,我可以看到握手節點服務器上的授權8wGgJYUvNdwAdcqenxQd

回答

0

嘗試此在客戶機側:)

變種插座= 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) 

特別是因爲你希望它看起來像(通知/節點):

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)