我在 ubuntu20.04 上运行 node.js 服务器(没有 nginX),我第一次尝试使用 SSL。我使用“certbot certonly --standalone”安装了 certbot
我的节点服务器为 Dev 设置为端口 9080 (http)/9089 (https),使用这些端口一切似乎都正常工作。
由于我现在要进入生产环境,我将节点服务器端口更改为 80/443,这一切最初似乎都有效。大约 30 分钟后,我开始看到以下错误:
错误:监听 EADDRINUSE:地址已在使用中 :::80
certbot 是否也使用端口 80,如果是,为什么?我该如何纠正?我的节点网络服务器仅用于 api 调用,因此,作为一种选择,我可以继续在非标准端口上运行节点。这样做正常吗?谢谢
更新:
root@ubuntu01:~# netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 549/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 537445/sshd: /usr/s
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 949/mongod
tcp6 0 0 :::22 :::* LISTEN 537445/sshd: /usr/s
tcp6 0 0 :::9080 :::* LISTEN 675537/node /home/j
tcp6 0 0 :::9089 :::* LISTEN 675537/node /home/j
udp 0 0 127.0.0.53:53 0.0.0.0:* 549/systemd-resolve
我还有一个在与 http 相同的端口上运行的套接字服务器(现在设置为 8080),这会产生什么区别吗?
socket.server = require('socket.io').listen(http_server);
socket.start();