W czerwcu pisałem o problemie, na jaki trafiłem na jednym z serwerów, którymi zarządzam, a na którym usługa Nginx odmówiła startu (ukochane chyba przez wielu „address already in use”). Wtedy z pomocą przyszedł mi skrypt „zerujący” ustawienia Nginx (pełne odinstalowanie, ponowna instalacja i przywrócenie – po testach – konfiguracji). Tym razem – na innym serwerze – choć błąd wydawał się podobny, to skrypt nie zadziałał, więc musiałem poszukać winowajcy innymi metodami…
Start usługi Nginx blokowany przez Apache2
Skorzystanie ze standardowej komendy journalctl (journalctl -xe) co od razu wskazało, że Nginx nie może wystartować prawidłowo, bo jakieś inne draństwo zdążyło już zając port 80:
patryk@vps01:~$ sudo journalctl -xe | grep "nginx"
nginx: [emerg] listen() to 0.0.0.0:80, backlog 511 failed (98: Address already in use)
I choć większość stron, którymi zarządzam, skonfigurowana jest do działania tylko w wersji szyfrowanej, na porcie 433, to jednak zdarzają się wyjątki, gdzie wersja nieszyfrowana (port 80) musi być dostępna. I to właśnie o ten port się w tym przypadku rozchodzi(ło).
Jeśli w systemie brak polecenia netstat, to w systemie Debian/Ubuntu można je dodać, instalując odpowiednią paczkę:
sudo apt-get install net-tools
Odpaliłem szybki test za pomocą polecenia netstat, w nadziei, że wskaże mi źródło problemu:
sudo netstat -tulpn
I na szczęście tak się stało:
Jak widać w systemie działa webserwer Apache2, który „nasłuchuje” właśnie na porcie 80 (dla IPv6). W sumie to nawet nie wiem, skąd on tam się wziął, bo wiele lat temu zamieniłem Apache2 na Nginx, a do tego ten serwer jest relatywnie świeży… Być może coś się doinstalowało przy okazji któregoś z testów, np. na potrzeby jakiegoś artykułu/poradnika.
W sumie to bez większego znaczenia, wyrok zapadł – ubijamy (proces) Apache2 (PID: 566 – ważne, bo używamy w poleceniu):
sudo kill -2 566
I sprawdzamy, czy Nginx wstanie bez problemu:
sudo service nginx restart
A skoro wszystko działa (co widać też na grafice zamieszczonej powyżej), to pora wywalić Apache2 z systemu (jak pisałem – nie korzystam od lat):
sudo apt-get purge apache2
I tyle. Kilka kontrolnych restartów wykazało, że wszystko działa…
- Wakacje składkowe ZUS a zawieszenie działalności gospodarczej, czyli uważaj, bo być może nie będziesz mógł skorzystać (w 2024) - 1970-01-01
- Przykładowy kalkulator wyceny usługi druku 3D, czyli nie tylko materiał się liczy - 1970-01-01
- Home Assistant 2024.10, czyli nowa karta „nagłówek” i niedziałający TTS w ramach usługi Google Cloud - 1970-01-01