Рейтинг:0

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

флаг pk

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

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

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

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

  • Я использую UFW, поэтому я проверил, не проблема ли в брандмауэре. Но для 80, 443 и 8080 установлено значение РАЗРЕШЕНО.
  • Я попытался посмотреть, может быть, nginx как-то не слушает, поэтому я попытался судо lsof -i -P -n | grep СЛУШАТЬ. Вот результат этого:
nginx 2896 root 6u IPv4 668673557 0t0 TCP *:443 (СЛУШАТЬ)
nginx 2896 root 7u IPv4 668673558 0t0 TCP *:80 (СЛУШАТЬ)
nginx 2897 www-data 6u IPv4 668673557 0t0 TCP *:443 (СЛУШАТЬ)
nginx 2897 www-data 7u IPv4 668673558 0t0 TCP *:80 (СЛУШАТЬ)
nginx 2898 www-data 6u IPv4 668673557 0t0 TCP *:443 (СЛУШАТЬ)
nginx 2898 www-data 7u IPv4 668673558 0t0 TCP *:80 (СЛУШАТЬ)
  • Я попытался проверить access.log nginx. Все мои запросы curl/wget/Lynx отображаются как обычно, но ни один из запросов браузера не появляется. Я также взглянул на error.log и получил следующее:
31.07.2021 11:51:52 [появление] 885#885: сбой привязки() к 0.0.0.0:443 (98: адрес уже используется)
31.07.2021 11:51:52 [возникновение] 885#885: сбой привязки() к 0.0.0.0:80 (98: адрес уже используется)
31.07.2021 11:51:52 [появление] 885#885: сбой привязки() к 0.0.0.0:443 (98: адрес уже используется)
31.07.2021 11:51:52 [возникновение] 885#885: сбой привязки() к 0.0.0.0:80 (98: адрес уже используется)
31.07.2021, 11:51:52 [появление] 885#885: до сих пор не удалось связать()

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

РЕДАКТИРОВАТЬ, чтобы добавить вывод:

sudo systemctl статус nginx:

nginx.service — высокопроизводительный веб-сервер и обратный прокси-сервер
   Загружено: загружено (/lib/systemd/system/nginx.service; включено; предустановка поставщика: включена)
   Активно: активно (работает) с сб 2021-07-31 15:05:53 по восточному поясному времени; 27 минут назад
  Процесс: 6834 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status
  Процесс: 6840 ExecStart=/usr/sbin/nginx -g демон включен; master_process включен; (код=выход, статус=0/УСПЕХ)
  Процесс: 6837 ExecStartPre=/usr/sbin/nginx -t -q -g демон включен; master_process включен; (код=выход, статус=0/УСПЕХ)
 Основной PID: 6841 (nginx)
   Группа CG: /system.slice/nginx.service
           ââ6841 nginx: главный процесс /usr/sbin/nginx -g daemon on; master_process на
           — 6842 nginx: рабочий процесс                           
           — 6843 nginx: рабочий процесс                           

31 июля 15:05:53 parrot systemd[1]: запуск высокопроизводительного веб-сервера и обратного прокси-сервера...
31 июля 15:05:53 parrot systemd[1]: запущен Высокопроизводительный веб-сервер и обратный прокси-сервер.

Вывод судо nginx-T длинный, поэтому Я сделал это суть.

флаг pk
@MichaelHampton Хорошо, я понял суть. Ссылка выше, но [вот она для ознакомления](https://gist.github.com/thely/32ae2f5d6c284277874204500ec54026).
Michael Hampton avatar
флаг cz
Хм, конфигурация nginx выглядит нормально (за исключением того, что вы запутали кучу вещей без необходимости, а также запутали доменное имя, что, вероятно, бесполезно). Я обеспокоен тем, что PID из systemd, запускающего nginx, не совпадают с PID, которые вы видите из `ps`. Вы делали что-то еще между этими событиями?
флаг pk
@MichaelHampton Единственное, что я удалил, это ssl_ciphers (по потенциальным соображениям безопасности, хотя я новичок в этом). В настоящее время main-site.org — единственный сайт, который у меня есть и работает на pm2, потому что это единственный из четырех сайтов, которые меня интересуют, но я оставил там остальные для полноты картины. Я проверил `ps -e` и обнаружил, что nginx использует 6841, 6842 и 6843, как и в статусе systemctl.
Michael Hampton avatar
флаг cz
А? Ваши шифры ssl являются общедоступной информацией; каждое https-соединение с вашим веб-сайтом отправляется им. В любом случае, что-то явно не синхронизировано; Я бы просто перезапустил nginx снова.
флаг pk
Ну, тогда моя беда. Я удалил их только из созданной мной сути, а не из реальных файлов .conf.
флаг pk
Я пытался перезапустить nginx несколько раз и только сейчас решил попробовать перезагрузить сервер еще раз, чтобы посмотреть, исправит ли это проблему. Все та же ситуация. :/
Michael Hampton avatar
флаг cz
Снова проверьте журнал ошибок nginx, чтобы увидеть, появилось ли что-нибудь еще.
djdomi avatar
флаг za
как насчет killall -9 nginx и перезапуска приложения из systemctl? для тестирования
флаг pk
Это было "ufw" - см. ниже. Я не знаю, почему это было `ufw`, но я предполагаю, что это так.
флаг tg
Вы пытались отключить `ufw` и посмотреть, что произойдет? Можно ли получить доступ к своему веб-сайту при отключенном брандмауэре?
флаг pk
@MasEDI это именно то, что я сделал! iptables-persistent заблокировал все порты при перезагрузке, и отключение ufw было тем, что наконец привело меня к правильному ответу. Я оставил ссылку на более конкретный ответ SO в своем ответе.
Рейтинг:0
флаг pk

Это настолько глупо, что я не знаю, почему это было проблемой, поэтому любые мысли по этому поводу приветствуются. Мой уфв настройки были/есть такие:

Статус: активен

К действию от
-- ------ ----
22 РАЗРЕШИТЬ ВСЕГДА                  
80/tcp РАЗРЕШИТЬ Везде                  
443/tcp РАЗРЕШИТЬ ВСЕГДА                  
80 РАЗРЕШИТЬ ВСЕГДА                  
8080 РАЗРЕШИТЬ ВСЕГДА                  
22 (v6) РАЗРЕШИТЬ ВСЕГДА (v6)             
80/tcp (v6) РАЗРЕШИТЬ везде (v6)             
443/tcp (v6) РАЗРЕШИТЬ везде (v6)             
80 (v6) РАЗРЕШИТЬ ВСЕГДА (v6)             
8080 (v6) РАЗРЕШИТЬ ВСЕГДА (v6) 

Там было несколько лишних 80-х, но я добавлял дополнительные вещи, чтобы посмотреть, поможет ли это.

Кто-то порекомендовал мне попробовать отключить ufw, просто чтобы убедиться, что проблема не в нем. Судя по всему, было. Я отключил его, сайт сразу же начал работать, и когда я снова включил его, ожидая, что он снова сломается, он ... все еще работает. Так что что-то о ufw нужно было перезапустить, когда я перезагрузил сервер.

РЕДАКТИРОВАТЬ: Это может быть из-за iptables-persistent, который, я думаю, автоматически устанавливается на большинстве серверов? Похоже, это та же проблема, что и этот ответ SO.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.