nginx 侦听端口443时出现EADDRINUSE错误

x7rlezfr  于 2023-03-01  发布在  Nginx
关注(0)|答案(1)|浏览(256)

我的react应用程序需要https连接,所以我需要在端口443上运行它。
无论我在哪个端口上运行应用,我都收到以下错误:

0|server   |     at Module.load (node:internal/modules/cjs/loader:981:32)
0|server   |     at Function.Module._load (node:internal/modules/cjs/loader:822:12)
0|server   |     at Object.<anonymous> (/home/fsadmin/.nvm/versions/node/v16.13.1/lib/node_modules/pm2/lib/ProcessContainerFork.js:33:23)
0|server   |     at Module._compile (node:internal/modules/cjs/loader:1101:14)
0|server   |     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
0|server   |     at Module.load (node:internal/modules/cjs/loader:981:32)
0|server   |     at Function.Module._load (node:internal/modules/cjs/loader:822:12)
0|server   |     at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
0|server   |     at node:internal/main/run_main_module:17:47 {
0|server   |   code: 'EADDRINUSE',
0|server   |   errno: -98,
0|server   |   syscall: 'listen',
0|server   |   address: '::',
0|server   |   port: 443
0|server   | }

如果我专门在端口443上运行它,则错误前缀为:

Error: listen EADDRINUSE: address already in use :::443

这表明后台某处有一个进程正在端口上运行,但是当我运行lsof -i :443行时,输出只显示与Nginx相关的信息,据我所知,Nginx与我的应用程序并发运行,当然不应该阻止任何请求。
有没有人知道是什么原因导致了端口阻塞?我使用的域名以前是由其他人托管的,我想知道是否有一些问题,但我被告知以前的主机帐户现在处于非活动状态。
任何帮助或建议将不胜感激。TIA

qhhrdooz

qhhrdooz1#

所以我需要在443端口上运行。
您可以在任何TCP端口上安装https侦听器,不限于443。唯一需要的是在浏览器的地址栏中键入https://作为URL,并正确安装测试证书。
https://localhost:3000在你的浏览器的地址栏中将成功地连接到你的测试服务器(监听端口3000),如果它是这样设置的话。问题是你不能很容易地从任何证书提供商那里得到一个“localhost”的签名证书。你可能需要创建一个只用于测试的证书,但是我对如何做到这一点有点模糊。
我通常会为localhost.mydomain.com注册一个指向www.example.com的DNS“A”记录127.0.0.1,这始终是localhost的IP地址。然后,我在DNS质询模式下使用certbot为该DNS条目生成一个签名证书。然后,配置测试服务器以使用该证书。然后,只需在浏览器的地址栏中键入https://localhost.mydomain.com:3000即可进行测试。

相关问题