Puncte:0

Serverul Ubuntu a fost repornit, site-ul nginx nu mai este accesibil din browser

drapel pk

Mi-am repornit serverul Ubuntu în această dimineață pentru că aveam ceea ce părea a fi o eroare de memorie scăzută (se întâmplă ocazional, nu a fost suficient de o problemă pentru a încerca să o remediez). Dar acum, site-ul meu (care înainte funcționa bine) nu mai este accesibil din browser.

Configurare: rulez un site NuxtJS folosind pm2 pentru a-l daemonize și nginx ca proxy invers. Am un cârlig git post-receive, astfel încât să pot împinge la depozitul meu git la distanță, care apoi reconstruiește aplicația și repornește instanța pm2.

Pot accesa site-ul meu doar de la în interiorul serverului, în interiorul unei ferestre de terminal. Lynx, wget și cURL funcționează și chiar urmează redirecționarea 301 către HTTPS. Și funcționează atunci când solicit domeniul în sine, nu doar localhost:3000 care primește proxy invers. Ca în, curl https://domeniul-meu.org lucrări. Dacă încerc să curl/lynx/etc din orice altă fereastră de terminal, așteaptă doar până când expiră. La fel și cu browserul â așteaptă până când expiră.

Iată lucrurile pe care le-am încercat/m-am uitat:

  • Folosesc UFW, așa că am verificat să văd dacă firewall-ul a fost problema. Dar 80, 443 și 8080 sunt toate setate la ALLOW.
  • Am încercat să văd dacă poate nginx nu asculta cumva, așa că am încercat sudo lsof -i -P -n | grep ASCULTĂ. Iată rezultatul:
nginx 2896 root 6u IPv4 668673557 0t0 TCP *:443 (ASCULTATE)
nginx 2896 root 7u IPv4 668673558 0t0 TCP *:80 (ASCULTATE)
nginx 2897 www-data 6u IPv4 668673557 0t0 TCP *:443 (ASCULTATE)
nginx 2897 www-data 7u IPv4 668673558 0t0 TCP *:80 (ASCULTATE)
nginx 2898 www-data 6u IPv4 668673557 0t0 TCP *:443 (ASCULTATE)
nginx 2898 www-data 7u IPv4 668673558 0t0 TCP *:80 (ASCULTATE)
  • Am încercat să verific access.log-ul lui nginx. Toate solicitările mele curl/wget/Lynx se afișează ca de obicei, dar niciuna dintre solicitările browserului nu apare. M-am uitat și la error.log și am primit asta:
2021/07/31 11:51:52 [emerg] 885#885: bind() to 0.0.0.0:443 a eșuat (98: Adresă deja utilizată)
2021/07/31 11:51:52 [emerg] 885#885: bind() to 0.0.0.0:80 a eșuat (98: Adresă deja utilizată)
2021/07/31 11:51:52 [emerg] 885#885: bind() to 0.0.0.0:443 a eșuat (98: Adresă deja utilizată)
2021/07/31 11:51:52 [emerg] 885#885: bind() to 0.0.0.0:80 a eșuat (98: Adresă deja utilizată)
2021/07/31 11:51:52 [emerg] 885#885: încă nu s-a putut lega ()

Pana acum nu am gasit solutii. Sunt doar nedumerit, pentru că orice s-a schimbat, s-a schimbat din cauza unei reporniri. Orice idei sunt foarte apreciate.

EDIT pentru a adăuga câteva rezultate:

sudo systemctl status nginx:

â nginx.service - Un server web de înaltă performanță și un server proxy invers
   Încărcat: încărcat (/lib/systemd/system/nginx.service; activat; prestabilit furnizor: activat)
   Activ: activ (în rulare) din sâmb. 2021-07-31 15:05:53 EDT; acum 27 de minute
  Proces: 6834 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, stare
  Proces: 6840 ExecStart=/usr/sbin/nginx -g daemon activat; master_process on; (cod=ieșit, stare=0/SUCCESS)
  Proces: 6837 ExecStartPre=/usr/sbin/nginx -t -q -g daemon activat; master_process on; (cod=ieșit, stare=0/SUCCESS)
 PID principal: 6841 (nginx)
   CGroup: /system.slice/nginx.service
           ââ6841 nginx: procesul principal /usr/sbin/nginx -g daemon activat; master_process activat
           ââ6842 nginx: proces de lucru                           
           ââ6843 nginx: proces de lucru                           

31 iulie 15:05:53 parrot systemd[1]: Pornirea unui server web de înaltă performanță și a unui server proxy invers...
31 iulie 15:05:53 parrot systemd[1]: Pornit Un server web de înaltă performanță și un server proxy invers.

Ieșire din sudo nginx -T este lung, deci Am făcut din el un esențial.

drapel pk
@MichaelHampton În regulă â Am făcut o idee. Link-ul este mai sus, dar [aici este pentru referință](https://gist.github.com/thely/32ae2f5d6c284277874204500ec54026).
Michael Hampton avatar
drapel cz
Hm, configurația nginx arată în regulă (cu excepția faptului că ai obscurcat o grămadă de lucruri inutil și ai înfundat, de asemenea, numele de domeniu, ceea ce probabil nu este de ajutor). Mă îngrijorează că PID-urile de la systemd care pornește nginx nu se potrivesc cu PID-urile pe care le vedeți de la `ps`. Ai făcut altceva între aceste evenimente?
drapel pk
@MichaelHampton Singurul lucru pe care l-am eliminat a fost ssl_ciphers (din potențiale motive de securitate, deși sunt nou în acest sens). În prezent, main-site.org este singurul pe care îl am în funcțiune pe pm2, pentru că este singurul dintre cele patru site-uri la care țin, dar restul le-am lăsat acolo pentru a fi complet. Am verificat `ps -e` și am descoperit că nginx folosea 6841, 6842 și 6843, la fel ca în starea systemctl.
Michael Hampton avatar
drapel cz
Eh? Cifrurile dvs. ssl sunt informații publice; fiecare conexiune https la site-ul dvs. web le este trimisă. Oricum, ceva este clar desincronizat; Aș reporni nginx din nou.
drapel pk
Ei bine, răul meu, atunci. Le-am eliminat doar din esenta pe care am făcut-o, nu din fișierele .conf reale.
drapel pk
Am încercat să repornesc nginx de mai multe ori și tocmai acum am decis să încerc să repornesc serverul din nou pentru a vedea dacă asta se va rezolva. Tot aceeasi situatie. :/
Michael Hampton avatar
drapel cz
Verificați din nou jurnalul de erori nginx pentru a vedea dacă a mai apărut ceva.
djdomi avatar
drapel za
ce zici de un killall -9 nginx și reporniți aplicația de la systemctl? pentru testare
drapel pk
A fost `ufw` â vezi mai jos. Nu știu de ce a fost `ufw`, dar cred că a fost.
drapel tg
Ați încercat să dezactivați `ufw` și să vedeți ce se întâmplă? Ați putea accesa site-ul dvs. când firewall-ul este dezactivat?
drapel pk
@MasEDI, asta este de fapt exact ceea ce am făcut! iptables-persistent a blocat toate porturile la repornire, iar dezactivarea ufw a fost ceea ce m-a condus în cele din urmă la răspunsul corect. Am lăsat un link către un răspuns SO mai specific în răspunsul meu.
Puncte:0
drapel pk

Este atât de stupid încât nu știu de ce a fost o problemă, așa că orice gânduri despre asta sunt apreciate. Ale mele ufw setările au fost/sunt după cum urmează:

Stare: activ

La Acțiune De la
-- ------ ----
22 PERMITERE oriunde                  
80/tcp PERMITERE oriunde                  
443/tcp ALLOW Oriunde                  
80 PERMITĂ oriunde                  
8080 PERMITERE oriunde                  
22 (v6) PERMITERE oriunde (v6)             
80/tcp (v6) PERMITERE oriunde (v6)             
443/tcp (v6) PERMITERE oriunde (v6)             
80 (v6) PERMITERE oriunde (v6)             
8080 (v6) PERMITERE oriunde (v6) 

Niște anii 80 redundanți acolo, dar adăugam lucruri suplimentare pentru a vedea dacă a ajutat.

Cineva mi-a recomandat să încerc să dezactivez ufw, doar pentru a mă asigura că nu a fost problema. Aparent, a fost. L-am dezactivat, site-ul a început imediat să funcționeze, iar când l-am reactivat, așteptându-mă să fie din nou spart,... încă funcționează. Deci ceva despre ufw trebuia redeclanșat când am repornit serverul.

EDIT: Acest lucru poate fi din cauza iptables-persistent, care este instalat automat pe majoritatea serverelor, cred? Se pare că este aceeași problemă ca acest răspuns SO.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.