0
我有一個nginx服務器爲webapp提供所有靜態內容。 該應用程序使用在node.js unsing socket.io中實現的websockets。 node.js後端正在監聽端口8000.如何讓nginx/1.3.14作爲代理與nodejs和socket.io一起工作
如果我通過端口8000在靜態傳送文件中包含socket-io.js文件,一切正常,但我已閱讀了一些關於使用nginx作爲代理處理8000端口內部
所以我#已經建立這樣的一個配置:
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可能 (得到的信息歡迎到插座。 IO)。 另外,靜態內容交付 但我不能找到任何方式來加載通過端口「socket.io/socket.io.js」文件80
這有可能在一個乾淨的方式?
這聽起來像你混淆兩兩件事:服務於靜態的JS文件是socket.io的一部分,與經過socket.io連接回到運行socket.io後端的node.js。您應該像其他任何JS文件一樣提供socket.io客戶端文件。 – 2013-03-14 00:24:21
@代碼首先畫家THX。做了一些更改(將js嵌入到我的靜態文件夾中)。但奇怪的是當我連接io.connect('http://domain.com/socket'); socket.io似乎將網址更改爲http://domain.com/socket.io,然後再次失敗。所以我改變了位置到socket.io,現在它工作(但爲什麼是socket.io客戶端使用不同的URL連接作爲給定的?) – Bernhard 2013-03-14 00:47:41
@CodePainters請看看這個:http://stackoverflow.com/questions/23103241/how-to-redirect-web-sockets-connection-through-nginx。我非常困在這裏 – 2014-04-16 08:37:07