NGINX配置与同一端口上的Node.js Express和TCP服务器?
问题描述:
我试图设置使用快递服务的端口3000和net
图书馆担任端口5052 TCP服务器的文件我的节点服务器,所以:NGINX配置与同一端口上的Node.js Express和TCP服务器?
const express = require('express');
const app = express();
const httpServer = require('http').Server(app);
const io = require('socket.io').listen(httpServer);
const path = require('path');
const net = require('net');
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname, './public/index.html'))
});
let server = net.createServer(function(socket) {
// Left out for brevity
}
server.listen(5052, 'localhost');
httpServer.listen(3000,() => {
console.log('Ready on port 3000');
});
本地,这一切都工作得非常好。我可以加载localhost:3000
,我得到我的HTML服务,它连接到socket.io罚款。我也可以完美地连接到端口5052上的服务器,并且生活很好。我只是无法让nginx正确地提供它。下面是我有:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name mycoolproject.com www.mycoolproject.com;
location/{
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/mycoolproject.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mycoolproject.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
if ($scheme != "https") {
return 301 https://$host$request_uri;
}
}
server {
listen 5053;
server_name mycoolproject.com www.mycoolproject.com;
location /{
proxy_pass http://localhost:5052;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
当我浏览到mycoolproject.com
我得到加载罚款网站,所以快递侧工作正常。我只是无法连接到我的服务器5053.任何想法?
答
您需要为Nginx配置不同的端口,5052由Node.js占用。
server {
listen 5053;
server_name mycoolproject.com www.mycoolproject.com;
location /{
proxy_pass http://localhost:5052;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
然后你就可以在那里你说这工作,你nginx的服务也连接到mycoolproject.com:5053
一个问题,在当地? – Kalamarico