Iată situația pe care am întâlnit-o:
- Serverul este administrat de laravel forge
- Acesta servește în spatele proxy-ului invers cloudflare
- Nginx este activ și rulează, ascultând atât pe portul 80, cât și pe 443 (confirmat)
acum trebuie să configurez un echilibrator de încărcare personalizat pentru acest server și se întâmplă un lucru foarte ciudat când încerc să fac răsuci
URL-ul din exterior, cererea este cu succes, jurnalul de acces este atașat în jurnalul nginx, dar când încerc să îl accesez de la mașina de echilibrare a încărcăturii prin curl --rezolvare
, conexiunea s-a închis înainte de a se întâmpla ceva (fără antet, fără stare, practic niciun răspuns).
În primul rând, am crezut că este o problemă de configurare a firewall-ului, așa că am ssh
în serverul de aplicații și încercați curl --resolve xxxx:80:127.0.0.1
care este accesul prin conexiune loopback, dar același lucru se întâmplă.
Apoi am încercat să fac din nou același lucru cu https, dar conexiunea s-a închis când clientul a încercat să inițieze strângerea de mână TLS.
Întreaga chestiune pare a fi blocată, ceea ce mi se pare imposibil, așa că are cineva vreo idee despre cum se întâmplă această problemă?
p/s: Am verificat despre firewall, ufw este activat, dar obțin același rezultat după ce ufw este dezactivat
În această imagine, ar trebui să obțin 404 în loc de niciun rezultat
forge@dev-server1:~$ curl -v localhost
* Încerc 127.0.0.1:80...
* TCP_NODELAY setat
* Conectat la portul 80 localhost (127.0.0.1) (#0)
> GET / HTTP/1.1
> Gazdă: localhost
> User-Agent: curl/7.68.0
> Accept: */*
>
* Răspuns gol de la server
* Conexiunea #0 la gazda localhost a rămas intactă
curl: (52) Răspuns gol de la server
forge@dev-server1:~$
Actualizați
Sugerat de comentariu, alerg nginx -T
și apoi aici este rezultatul
p/s: aici este testul pentru https pe care l-am menționat anterior
forge@dev-server1:~$ curl --resolve member.domain.hide:443:127.0.0.1 https://member.domain.hide -v
* S-a adăugat member.domain.hide:443:127.0.0.1 în memoria cache DNS
* Numele de gazdă member.domain.hide a fost găsit în memoria cache DNS
* Se încearcă 127.0.0.1:443...
* TCP_NODELAY setat
* Conectat la member.domain.hide (127.0.0.1) portul 443 (#0)
* ALPN, oferind h2
* ALPN, oferind http/1.1
* setați cu succes locațiile de verificare a certificatelor:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
* TLSv1.3 (OUT), strângere de mână TLS, salut client (1):
* OpenSSL SSL_connect: resetarea conexiunii de către peer în conexiunea la member.domain.hide:443
* Închiderea conexiunii 0
curl: (35) OpenSSL SSL_connect: Resetarea conexiunii de către peer în conexiunea la member.domain.hide:443
forge@dev-server1:~$