我今天早上重新启动了我的 Ubuntu 服务器,因为我遇到了似乎是内存不足的错误(偶尔会发生,还不足以尝试修复它)。但是现在,我的网站(以前运行良好)不再可以从浏览器访问。
设置:我正在运行一个 NuxtJS 站点,使用 pm2 来守护它,并使用 nginx 作为反向代理。我有一个 post-receive git 挂钩,这样我就可以推送到我的远程 git repo,然后重建应用程序并重新启动 pm2 实例。
我只能从服务器内部的终端窗口内访问我的站点。Lynx、wget 和 cURL 都可以工作,甚至可以遵循 301 重定向到 HTTPS。当我请求域本身时,它们正在工作,而不仅仅是被反向代理的 localhost:3000。如,curl https://my-domain.org
工作。如果我尝试从任何其他终端窗口卷曲/lynx/etc,它只会等到超时。与浏览器相同 - 等待超时。
以下是我尝试/查看的内容:
- 我正在使用 UFW,所以我检查了防火墙是否是问题所在。但是 80、443 和 8080 都设置为 ALLOW。
- 我尝试查看是否 nginx 没有以某种方式在听,所以我尝试了
sudo lsof -i -P -n | grep LISTEN
. 这是它的输出:
nginx 2896 root 6u IPv4 668673557 0t0 TCP *:443 (LISTEN)
nginx 2896 root 7u IPv4 668673558 0t0 TCP *:80 (LISTEN)
nginx 2897 www-data 6u IPv4 668673557 0t0 TCP *:443 (LISTEN)
nginx 2897 www-data 7u IPv4 668673558 0t0 TCP *:80 (LISTEN)
nginx 2898 www-data 6u IPv4 668673557 0t0 TCP *:443 (LISTEN)
nginx 2898 www-data 7u IPv4 668673558 0t0 TCP *:80 (LISTEN)
- 我尝试检查 nginx 的 access.log。我所有的 curl/wget/Lynx 请求都正常显示,但没有一个浏览器请求出现。我还查看了error.log,得到了这个:
2021/07/31 11:51:52 [emerg] 885#885: bind() to 0.0.0.0:443 failed (98: Address already in use)
2021/07/31 11:51:52 [emerg] 885#885: bind() to 0.0.0.0:80 failed (98: Address already in use)
2021/07/31 11:51:52 [emerg] 885#885: bind() to 0.0.0.0:443 failed (98: Address already in use)
2021/07/31 11:51:52 [emerg] 885#885: bind() to 0.0.0.0:80 failed (98: Address already in use)
2021/07/31 11:51:52 [emerg] 885#885: still could not bind()
到目前为止,我还没有找到任何解决方案。我只是感到困惑,因为无论发生什么变化,它都因重新启动而改变。任何想法都非常感谢。
编辑添加一些输出:
sudo systemctl status nginx
:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2021-07-31 15:05:53 EDT; 27min ago
Process: 6834 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status
Process: 6840 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 6837 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 6841 (nginx)
CGroup: /system.slice/nginx.service
├─6841 nginx: master process /usr/sbin/nginx -g daemon on; master_process on
├─6842 nginx: worker process
└─6843 nginx: worker process
Jul 31 15:05:53 parrot systemd[1]: Starting A high performance web server and a reverse proxy server...
Jul 31 15:05:53 parrot systemd[1]: Started A high performance web server and a reverse proxy server.
的输出sudo nginx -T
很长,所以我把它作为一个要点。