Puncte:1

Nginx proxy_pass root la pagina de destinație externă

drapel fr

Pentru un nou domeniu x.co pe care îl configurez, vreau ca rădăcina (x.co) să afișeze o pagină de destinație externă fără a schimba adresa URL cu cea a paginii de destinație externă.

Această pagină de destinație a fost creată pe hubspot și publicată la a.hubspot.b/c

Există o modalitate simplă de a realiza acest lucru? Am verificat câteva răspunsuri de genul 1, 2, 3, dar nu am primit-o.

Ce am acum este mai jos. Redirecționează către pagina de destinație schimbând adresa URL în a.hubspot.b/c. Am nevoie de adresa URL pentru a rămâne aceeași x.co.

FWIW, folosesc, de asemenea, cloudflare caching și DNS.

Server {
        asculta 80;
        server_name x.co www.x.co;
        returnează 301 https://$server_name$request_uri;
}

Server {
        asculta 443 ssl http2;
        server_name x.co www.x.co;

        ssl_certificat x.co.pem;
        ssl_certificate_key x.co.key;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout 5m;

        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers activat;

        Locație / {
            #proxy_pass https://x-12345.hubspotpagebuilder.eu/coming-soon/;

            rezolutor 8.8.8.8;

            proxy_pass https://x-12345.hubspotpagebuilder.eu/coming-soon;
            proxy_set_header Gazdă $gazdă;
            proxy_set_header X-Real-IP $adresă_la distanță;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $schema;


            #root /var/www/frontend/x;
            #root html;
            #index index.html index.htm;
        }
    }

Editați/adăugați - destul de prost, nu m-am deranjat să verific jurnalele de erori nginx. Când am făcut-o, au existat indicii bune despre problemă. Jurnalele de erori au avut

„SSL_do_handshake() a eșuat (SSL: error:14094410:SSL routines:ssl3_read_bytes_sslv3 alert handshake failure:SSL alert number 40) while SSL handshake to upstream, client: 2401: ......” 

(...... la sfârșit înseamnă că există mai mult text pe care nu l-am introdus aici. Folosesc un certificat Cloudflare pe backend-ul meu și redirecționez către o pagină hubspot în nginx - asta mi s-a părut o problemă.

Si a fost. Soluția a fost să adaugi proxy_ssl_server_name activat;. Toate proxy_set_header directivele pe care le-am copiat în disperare erau inutile și puteau fi luate de ele cu bucurie. Această pagină s-a dovedit foarte util în explicarea problemei și soluției.

Ivan Shatsky avatar
drapel gr
Nu am primit câteva lucruri.Ce ar trebui să se întâmple cu orice altă solicitare (mă refer la alta decât cererea rădăcină)? De ce folosești toate acele directive `proxy_set_header`? Le folosești într-un anumit scop sau doar le copiați și lipiți dintr-un exemplu fără să înțelegeți ce au făcut cu adevărat?
Ahron avatar
drapel fr
Toate `proxy_set_headers` și `resolver` sunt copiate lipite. Restul este al meu. Când ceea ce am avut nu a funcționat, am început să copiez și lipim. Pentru solicitările non-root, un 404 este bine chiar acum.
Ivan Shatsky avatar
drapel gr
Încercați să eliminați cel puțin unul `proxy_set_header Host $host;`. Aveți nevoie de un resolver numai dacă numele de domeniu pentru directiva `proxy_pass` este specificat folosind o variabilă (variabile) care nu este cazul dvs. (totuși nu va face niciun rău).
Ahron avatar
drapel fr
Apoi primesc o eroare de gazdă gateway bad 502 prin Cloudflare
Ivan Shatsky avatar
drapel gr
Ați generat o eroare 502 după ce ați eliminat directiva `proxy_set_header Host $host;`, nu una `resolver`?
Ahron avatar
drapel fr
Da. Nu mi-am putut da seama.
Ivan Shatsky avatar
drapel gr
Sună foarte ciudat. Ok, încercați să setați în mod explicit valoarea folosind `proxy_set_header Host "x-12345.hubspotpagebuilder.eu";`.
Ahron avatar
drapel fr
Niciun efect din pacate.
Ahron avatar
drapel fr
Jurnalele de eroare spun „SSL_do_handshake() a eșuat (SSL: error:14094410:SSL routines:ssl3_read_bytes_sslv3 alert handshake failure:SSL alert number 40) în timp ce SSL handshake la amonte, client: 2401: ......” (the .. .... la sfârșit înseamnă că există mai mult text pe care nu l-am introdus aici. Folosesc un certificat Cloudflare pe backend și redirecționez către o pagină hubspot în nginx - asta pare o problemă
Ivan Shatsky avatar
drapel gr
Ar fi bine să adăugați mesaje din jurnalul de eroare modificând întrebarea dvs. Aceasta arată ca un fel de nepotrivire a versiunilor TLS, dar este un domeniu în care nu am cunoștințe profunde. Luați în considerare actualizarea etichetelor de întrebare, poate că altcineva se uită la ele.
Ahron avatar
drapel fr
Ok, mulțumesc mult că ai insistat să încerci să mă ajuți. Mi-am dat seama. A fost într-adevăr o problemă SSL. Prost din partea mea că nu m-am obosit să verific jurnalele. Soluția este să adăugați ` proxy_ssl_server_name on;` toate pasta de copiere `proxy_set_headers` nu are rost, având în vedere natura problemei. Acest link s-a dovedit foarte util, așa că poate ai putea arunca o privire și tu - https://www.claudiokuenzler.com/blog/1120/nginx-reverse-proxy-ssl-alert-number-40-while-ssl-handshaking-upstream

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.