AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1073180
Accepted
Tinstar
Tinstar
Asked: 2021-08-01 11:16:48 +0800 CST2021-08-01 11:16:48 +0800 CST 2021-08-01 11:16:48 +0800 CST

重新启动 Ubuntu 服务器,无法再从浏览器访问 nginx 站点

  • 772

我今天早上重新启动了我的 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很长,所以我把它作为一个要点。

nginx ufw pm2
  • 1 1 个回答
  • 65 Views

1 个回答

  • Voted
  1. Best Answer
    Tinstar
    2021-08-01T13:19:08+08:002021-08-01T13:19:08+08:00

    这太愚蠢了,我不知道为什么会出现问题,所以对此的任何想法表示赞赏。我的ufw设置如下:

    Status: active
    
    To                         Action      From
    --                         ------      ----
    22                         ALLOW       Anywhere                  
    80/tcp                     ALLOW       Anywhere                  
    443/tcp                    ALLOW       Anywhere                  
    80                         ALLOW       Anywhere                  
    8080                       ALLOW       Anywhere                  
    22 (v6)                    ALLOW       Anywhere (v6)             
    80/tcp (v6)                ALLOW       Anywhere (v6)             
    443/tcp (v6)               ALLOW       Anywhere (v6)             
    80 (v6)                    ALLOW       Anywhere (v6)             
    8080 (v6)                  ALLOW       Anywhere (v6) 
    

    那里有一些多余的 80 年代,但我正在添加额外的东西,看看它是否有帮助。

    有人建议我尝试禁用 ufw,以确保它不是问题。显然,确实如此。我禁用了它,该站点立即开始工作,当我重新启用它时,期待它再次被破坏,它......仍然有效。因此,当我重新启动服务器时,需要重新触发有关 ufw 的某些内容。

    编辑:这可能是因为 iptables-persistent,我猜它会自动安装在大多数服务器上?看起来这与此 SO 答案相同。

    • 0

相关问题

  • Gzip 与反向代理缓存

  • nginx 作为代理的行为

  • Nginx 学习资源 [关闭]

  • 提供 70,000 个静态文件 (jpg) 的最佳方式?

  • 在 Apache、LightTPD 和 Nginx Web 服务器上提供 PHP 5.x 应用程序的现状?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve