Node.js socket.io无法使用Nginx反向代理找到GET 404

时间:2017-01-22 11:24:10

标签: node.js nginx socket.io reverse-proxy

所以我正在尝试在nodejs / socket.io中制作一个游戏但是每当我在具有反向代理的服务器上部署它都不起作用时,一切都在本地工作正常但在反向代理上它给出404找不到的错误

应用程序端口为5000。

目录结构:

var express = require('express');
var app = express();
var serv = require('http').Server(app);
app.get('/node',function(req, res){
  res.sendFile(__dirname + '/client/index.html');
});
app.use('/client',express.static(__dirname + '/client'));
serv.listen(5000);
var SOCKET_LIST={};
var io = require('socket.io')(serv,{});

我的app.js:

var socket = io();
Img.player.src='client/img/player.png'; //I have more like this

的index.html:

 location ~ ^/(node|socket\.io) {
 proxy_pass http://127.0.0.1:5000;
 proxy_set_header Host $host;
 proxy_set_header Origin http://$host; 
 proxy_http_version 1.1;
 proxy_cache_bypass $http_upgrade;
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection $http_connection;
 sub_filter /node /;
 }

Nginx:

var

当我去myIpAdress / node /我得到index.html文件,我可以登录到应用程序,所以socket.io工作,不起作用的东西是指向外部文件的链接'myIpAdress / node / client / img / player.png'给出404错误。

任何想法客户端文件夹的路径是什么?

1 个答案:

答案 0 :(得分:0)

尝试添加其他位置块,如下所示:

location /client {
    alias /path/to/client;
    access_log off;
}

上述位置块告诉NGINX通过从local / path / to / client目录提供内容来响应客户端对yourdomain.com/client/内容的请求。