我在端口3002上运行的Ubuntu服务器上设置了node/express.js/socket.io
应用程序设置。我打开了机器上的所有端口。NGINX无法获得
当我去11.111.111.1:3002/
一切正常(两个socket.io & express.js)。应用程序我想代理传递给/mediaDev/
这似乎工作中,我得到express.js或节点它说的错误消息:
“不能GET/mediaDev”
如果找不到节点应用程序返回502错误的网关。
但直接进入我的IP地址加端口的应用程序,该应用程序完美工作就像预期的一样。
简体NGINX:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
location ~ ^/mediaDev {
proxy_pass http://localhost:3002;
}
}
node.js的相关服务内容:
var app = express()
app.user(bodyParser.urlencoded({ extended:false}))
app.use(bodyParser.json())
app.set('views', path.join(__dirname, 'views'))
app.set('view engine', 'ejs')
app.get('/', function (req, res) {
res.render('index')
})
var server = app.listen(PORT, function() {
console.log("listening on port 3002")
})
var io = require('socket.io')(server, {
path: '/mediaDev/socket.io'
})
注:在两个express.js和socket.io正在使用的IP地址。在实际的域名快递返回错误,但我的socket.io路径/mediaDev/socket.io
仍然有效。
我认为上面有点奇怪。如果我代理通过/mediaDev
并使我的socket.io路径/mediaDev/socket.io
不应该我期望一个错误,并且实际上在/mediaDev/mediaDev/socket.io
?
你想proxy_pass整个连接到端口3002或只是代理socket.io? – jAndy
整个连接 –