首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在端口443上侦听的PM2显示EADDRINUSE: address已在使用中:443

问在端口443上侦听的PM2显示EADDRINUSE: address已在使用中:443
EN

Stack Overflow用户
提问于 2020-11-09 05:01:49
回答 2查看 629关注 0票数 1

我有一个Node/Express服务器运行在AWS Lightsail实例上,使用PM2作为流程管理器。服务器当前正在侦听端口4000。实例的IP地址附加到具有有效SSL证书的子域,并自动从HTTP重定向到HTTPS。现在访问https://example.com会显示“恭喜!您现在正在云中运行Bitnami Node.js 12.18.3。”页面上显示了“恭喜!您现在正在云中运行Bitnami Node.js 12.18.3”页面。

目前,所有Express端点都只能通过http://example.com:4000/endpoint访问,但我希望Express应用程序在端口443上运行,以便可以在https://example.com/endpoint上立即访问端点。

我了解到PM2能够侦听端口80和443,并尝试了documentation中提到的方法,但每当我将.env文件中的端口号更改为443并使用pm2 reload app重新加载应用程序时,我都会收到以下错误:

代码语言:javascript
复制
0|app    | Error: listen EADDRINUSE: address already in use :::443
0|app    |     at Server.setupListenHandle [as _listen2] (net.js:1313:16)
0|app    |     at listenInCluster (net.js:1361:12)
0|app    |     at Server.listen (net.js:1447:7)
0|app    |     at Function.listen (/opt/bitnami/apache/htdocs/node_modules/express/lib/application.js:618:24)
0|app    |     at Object.<anonymous> (/opt/bitnami/apache/htdocs/app.js:44:5)
0|app    |     at Module._compile (internal/modules/cjs/loader.js:1137:30)
0|app    |     at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
0|app    |     at Module.load (internal/modules/cjs/loader.js:985:32)
0|app    |     at Function.Module._load (internal/modules/cjs/loader.js:878:14)
0|app    |     at Object.<anonymous> (/opt/bitnami/node/lib/node_modules/pm2/lib/ProcessContainerFork.js:33:23) {
0|app    |   code: 'EADDRINUSE',
0|app    |   errno: 'EADDRINUSE',
0|app    |   syscall: 'listen',
0|app    |   address: '::',
0|app    |   port: 443
0|app    | }

App.js

代码语言:javascript
复制
const express = require('express');
const dotenv = require('dotenv');

const app = express();
app.use(express.json()); // for parsing POST bodies
dotenv.config();

app.get("/hello", (req, res) => res.send("Hello World!"));

app.listen(process.env.PORT, () => {
    console.log(`? App listening on port ${process.env.PORT}!`);
});

.env

代码语言:javascript
复制
PORT=443

编辑:pm2 status output

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-13 03:38:13

不幸的是,我无法使用Nginx,而是使用Apache的虚拟主机配置将所有流量从端口443重定向到4000。更多信息here。

票数 0
EN

Stack Overflow用户

发布于 2020-11-13 03:39:49

您的控制台错误统计信息端口已在使用中,请尝试更改PORT=8282并查看这是否解决了问题,但是,如果问题仍然存在,则将您的dotenv配置移到顶部的require('dotenv').config()。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64742999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档