2017-01-22 58 views
0

私はnodejs/socket.ioでゲームを作ろうとしていますが、リバースプロキシを使ってサーバーにデプロイするときは、すべてがローカルで正常に動作しますが、リバースプロキシでは404エラーが見つかりません。Node.js socket.ioはNginxリバースプロキシで見つからないGET 404

├── app.js 
├── client 
│ ├── css 
│ │ └── main.css 
│ ├── fonts 
│ ├── img 
│ ├── index.html 
│ ├── index.pug 
│ └── js 
│  └── main.js 
├── package.json 

マイapp.js:

アプリケーションのポートは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,{}); 

のindex.html:

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

nginxの:

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 /; 
} 

私はmyIpAdress /ノードに行くとき/私はindex.htmlファイルを取得し、私はアプリケーションそうsocket.io作品にログインすることができ、動作しない事が外部ファイル「myIpAdressへのリンクです/node/client/img/player.png 'は404エラーを返します。

クライアントフォルダのパスは何ですか?そのような別の場所にブロックを追加すること

答えて

0

試してみてください。

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

上記の場所のブロックは/に/ローカル/パスからそれを提供することによってyourdomain.com/client/内のコンテンツのクライアント要求に応答するのnginxを伝えますクライアントディレクトリ。

関連する問題