Перезагрузил сервер Ubuntu, сайт nginx больше не доступен из браузера

Перезагрузил сервер Ubuntu, сайт nginx больше не доступен из браузера

Я перезагрузил свой сервер Ubuntu сегодня утром, потому что у меня возникла ошибка, похожая на ошибку нехватки памяти (бывает иногда, но не настолько серьезная, чтобы пытаться ее исправить). Но теперь мой сайт (который раньше работал нормально) больше не доступен из браузера.

Настройка: Я запускаю сайт NuxtJS, используя pm2 для его демонизации и nginx в качестве обратного прокси. У меня есть post-receive git hook, чтобы я мог отправить данные в свой удаленный git-репозиторий, который затем перестраивает приложение и перезапускает экземпляр pm2.

Я могу получить доступ к своему сайту только извнутри сервера, в окне терминала. Lynx, wget и cURL работают и даже следуют 301-редиректу на HTTPS. И они работают, когда я запрашиваю сам домен, а не только localhost:3000, который получает обратное проксирование. То есть curl https://my-domain.orgработают. Если я пытаюсь запустить curl/lynx/etc из любого другого окна терминала, он просто ждет, пока не истечет время ожидания. То же самое с браузером — ждет, пока не истечет время ожидания.

Вот что я пробовал/смотрел:

  • Я использую UFW, поэтому я проверил, не в брандмауэре ли проблема. Но 80, 443 и 8080 установлены на РАЗРЕШЕНИЕ.
  • Я попытался проверить, не прослушивает ли 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)
  • Я попробовал проверить access.log nginx. Все мои запросы 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()

Пока что я не нашел никаких решений. Я просто сбит с толку, потому что все, что изменилось, изменилось из-за перезагрузки. Любые идеи приветствуются.

EDIT, чтобы добавить некоторые выходные данные:

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длинный, поэтомуЯ сделал это сутью.

решение1

Это настолько глупо, что я не знаю, почему это было проблемой, поэтому любые мысли по этому поводу приветствуются. Мои 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 нужно было перезапустить, когда я перезагрузил сервер.

EDIT: Это может быть из-за iptables-persistent, который, я полагаю, автоматически устанавливается на большинстве серверов? Похоже, этота же проблема, что и в этом ответе SO.

Связанный контент