gpt4 book ai didi

node.js - 在同一端口上使用 Node.js Express 和 TCP 服务器配置 NGINX?

转载 作者:可可西里 更新时间:2023-11-01 02:53:28 24 4
gpt4 key购买 nike

我正在尝试设置我的 Node 服务器,它使用 express 在端口 3000 上为文件提供服务,并使用 net 库在端口 5052 上为 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 时,网站加载正常,因此 express 端工作正常。我只是无法连接到 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;
}
}

然后你可以连接到mycoolproject.com:5053

关于node.js - 在同一端口上使用 Node.js Express 和 TCP 服务器配置 NGINX?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46409307/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com