Envato Elements - pobieraj co chcesz, ile chcesz

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:

[email protected]:~$ 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…

(!) Zgłoś błąd na stronie
Potrzebujesz profesjonalnej pomocy? Skontaktuj się z nami!

Spodobał Ci się artykuł? Zapisz się do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!

Na podany adres e-mail otrzymasz od nas wiadomość e-mail, w której znajdziesz link do potwierdzenia subskrypcji naszego Newslettera. Dzięki temu mamy pewność, że nikt nie dodał Twojego adresu przez przypadek. Jeśli wiadomość nie przyjdzie w ciągu najbliższej godziny (zazwyczaj jest to maksymalnie kilka minut) sprawdź folder SPAM.

Patryk

CEO Webinsider.pl, a do tego CTO, CIO, CFO, CMO, CSO, COO i CRO ;-)
Pasjonat nowych technologii - od sprzętu po oprogramowanie, od serwerów po smartfony i rozwiązania IoT. Potencjalnie kiepski bloger, bo nie robi zdjęć "talerza" zanim zacznie jeść.

Dumny przyjaciel swoich psów :-)
Envato Elements - pobieraj co chcesz, ile chcesz