Puncte:0

Cum fac serverul meu Nginx cu proxy invers să acceseze alte fișiere direcționate într-o aplicație express care rulează pe portul 3000?

drapel it

În prezent, am o aplicație expres în /usr/share/nginx/myexpress

Aplicația Express ascultă și funcționează perfect pe portul 3000. Serverul meu NGINX face proxy invers către acesta și pot vedea pagina implicită Express accesând kodix.com.br.

Problema este că nu pot merge la kodix.com.br/hello, de exemplu, după ce l-am rutat. Îl pot accesa doar trecând prin adresa ip. (Ca acest exemplu, dar cu alte numere: 143.94.233.176:3000/hello)

Iată curentul meu site-uri disponibile configurație nginx:

amonte node_app{
server 127.0.0.1:3000;
}

Server {

    root /usr/share/nginx/myexpress;

    # Adăugați index.php la listă dacă utilizați PHP
    index index.html index.htm index.nginx-debian.html;

    nume_server kodix.com.br www.kodix.com.br;

    Locație / {
        # Mai întâi încercați să serviți cererea ca fișier, apoi
        # ca director, apoi reveniți la afișarea unui 404.
        try_files $uri $uri/ =404;
        proxy_pass http://node_app;
        proxy_http_versiunea 1.1;
        proxy_set_header Actualizare $http_upgrade;
        proxy_set_header Conexiune „upgrade”;
        proxy_set_header Gazdă $gazdă;
        proxy_cache_bypass $http_upgrade;
    }

}

Cum fac astfel încât să pot accesa alte pagini Express folosind serverul meu nginx?

djdomi avatar
drapel za
te rog sa-ti rezolvi intrebarea, nu este clar ce iti place sa faci
Gerard H. Pille avatar
drapel in
Dacă îmi amintesc corect, o locație care se termină în /, ar trebui să treacă proxy_pass la o locație care se termină în /, ca în „proxy_pass http : //node_app/;” (lăsați deoparte spațiile libere din jurul :).
Gabriel avatar
drapel it
@djdomi Vreau să accesez celelalte pagini express direcționate, de exemplu, accesarea kodix.com.br/hello m-ar trimite la pagina de vizualizare rutată pe care am configurat-o în folderul vizualizări din express.
Gabriel avatar
drapel it
@GerardH.Pille Făcând acest lucru, sudo nginx -t se întoarce cu o eroare.
Gerard H. Pille avatar
drapel in
„Nu pot să merg”: ce se întâmplă dacă încerci?
Puncte:0
drapel it

Nu sunt sigur dacă acesta este modul corect de a face acest lucru, dar am reușit să funcționeze adăugând un bloc de locație la blocul de server:

locație /bună ziua/ {
    proxy_pass http://localhost:3000/hello;
}

Apoi, accesarea myserver.com.br/hello mă redirecționează către pagina corectă.

djdomi avatar
drapel za
dar din ce motiv ai root /usr/share/nginx/myexpress; în cazul în care utilizați reverse_proxy?
Puncte:0
drapel cz

Soluția normală pentru aceasta este utilizarea unei locații numite. În această configurare, nginx va servi mai întâi conținut static. Dacă nu există conținut static pentru calea URL, în loc să returneze un 404, acesta este apoi transmis în locația denumită, care îl trimite la aplicația dvs.

Este o completare foarte simpla:

    Locație / {
        try_files $uri $uri/ @express;
    }

    locație @express {
        proxy_pass http://node_app;
        proxy_http_versiunea 1.1;
        proxy_set_header Actualizare $http_upgrade;
        proxy_set_header Conexiune „upgrade”;
        proxy_set_header Gazdă $gazdă;
        proxy_cache_bypass $http_upgrade;
    }

P.S. Nu este o idee bună să vă stocați fișierele web /usr/share/nginx. Acest director este deținut de managerul de pachete și are autoritatea de a șterge tot ce se află în el ori de câte ori pachetul nginx este actualizat sau eliminat. (Cel mai probabil nu va merge, dar acesta este un risc pe care nu mi-l asum.)

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.