我正在尝试在同一服务器/端口上运行多个NodeJS应用程序,使用nginx作为代理实际运行的Node应用程序的反向代理.
server { listen 8000; server_name node.domain.com; root /var/www/node; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; # Enables WS support proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_redirect off; location / { proxy_pass http://127.0.0.1:8001; } location /irc/ { proxy_pass http://127.0.0.1:8002; } location /voidwalker/ { proxy_pass http://127.0.0.1:8003; } }
正如您所看到的,我forever
在不同的子目录中运行(使用)不同的项目(NodeJS应用程序)/var/www/node
.
但我想在我的一个项目中使用socket.io.在socket.io文档中,它声明我应该使用在客户端加载socket.io-client,它返回404:
GET http://node.domain.com/socket.io/socket.io.js 404 (Not Found)
我猜这是因为我正在代理请求但我并不完全理解这个过程在内部是如何工作的,我希望能够让它发挥作用.
关于这一点需要注意的是我必须使用加载我的CSS,而我宁愿使用
以防我想在特定的子域/其他域上部署它(因为这是一个开发服务器).
编辑
因此,在与Ray Stantz一起调试之后,我们认为代理中出现了问题.我将socket.io.js移入了/public/js/socket.io.js
,我现在可以使用它,但这不是正确的解决方案.
如果有人对此有任何想法,我会很高兴听到他们并试一试!