首页 > 解决方案 > 我可以在 2 个特定端口上使用 https 运行 2 个 node.js express 吗?

问题描述

我面临一个我无法单独解决的问题。我在我的 linux 服务器上运行了 2 个 node.js 服务器实例,但是在端口 4000 上运行的一个运行良好,但是在端口 6000 上运行的一个却不工作。

请参见下面的示例:

端口 4000:

在此处输入图像描述

端口 6000:

在此处输入图像描述

我检查了服务器上的端口,一切似乎都很好:

在此处输入图像描述

请参阅下面我的 2 个实例的代码:

const express = require('express');
const cors = require('cors');
const fs = require('fs');
const https = require('https');

var app = express();
app.use(cors());
app.use(require('body-parser').json());

var privateKey  = fs.readFileSync('/etc/letsencrypt/live/moreapp.com.br/privkey.pem', 'utf8');
var certificate = fs.readFileSync('/etc/letsencrypt/live/moreapp.com.br/fullchain.pem', 'utf8');
var credentials = {key: privateKey, cert: certificate};
var httpsServer = https.createServer(credentials, app);

app.get('/', (req, res) => {
  res.send("Hello World");
});

httpsServer.listen(6000, () => {
    console.log("Server Listening");
});

你能帮忙解决这个问题吗?

谢谢

标签: node.jslinuxexpresshttpsfirewall

解决方案


我认为您应该为您的请求发布完整的错误。您在端口 6000 上获得了哪个 http 代码?

如果您通过防火墙调用服务器,您是否正确授权了该端口上的请求?

编辑:端口 6000 似乎是一个禁止端口。他被许多浏览器阻止,也可能被您的 http 工具阻止。尝试更改您的端口,然后重试。

来源:Chrome 端口被阻止


推荐阅读