我可以 运行 2 node.js express 在 2 个特定端口上使用 https 吗?
Can I run 2 node.js express using https on 2 specific ports?
我面临一个我无法单独解决的问题。我在我的 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");
});
你能帮忙解决一下吗?
谢谢
在您的代码末尾添加此错误处理程序,并检查记录您遇到的错误
app.use((err, req, res, next) => {
console.log('error ==',err);
const error = err.message || 'Internal Server Error';
const status = err.status || 500;
res.status(status).json({ error: error });
})
在此处阅读有关错误处理的更多信息:https://expressjs.com/en/guide/error-handling.html
我认为您应该 post 为您的请求提供完整的错误信息。
您在端口 6000 上获得了哪个 http 代码?
如果您通过防火墙调用您的服务器,您是否正确授权了该端口上的请求?
编辑:
端口 6000 似乎是一个禁止的端口。他被许多浏览器阻止,也可能被您的 http 工具阻止。
尝试更改您的端口并重试。
我想我遇到了问题。实际上不是使用 express 应用程序,而是使用端口 6000,在浏览器中得到 "ERR_UNSAFE_PORT",但工作正常 API。尝试更改端口,因为 6000 可能是系统保留的。
您可以在 this 期中阅读更多内容
我面临一个我无法单独解决的问题。我在我的 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");
});
你能帮忙解决一下吗?
谢谢
在您的代码末尾添加此错误处理程序,并检查记录您遇到的错误
app.use((err, req, res, next) => {
console.log('error ==',err);
const error = err.message || 'Internal Server Error';
const status = err.status || 500;
res.status(status).json({ error: error });
})
在此处阅读有关错误处理的更多信息:https://expressjs.com/en/guide/error-handling.html
我认为您应该 post 为您的请求提供完整的错误信息。 您在端口 6000 上获得了哪个 http 代码?
如果您通过防火墙调用您的服务器,您是否正确授权了该端口上的请求?
编辑: 端口 6000 似乎是一个禁止的端口。他被许多浏览器阻止,也可能被您的 http 工具阻止。 尝试更改您的端口并重试。
我想我遇到了问题。实际上不是使用 express 应用程序,而是使用端口 6000,在浏览器中得到 "ERR_UNSAFE_PORT",但工作正常 API。尝试更改端口,因为 6000 可能是系统保留的。
您可以在 this 期中阅读更多内容