NGINX run Node App without Reverse Proxy

Salut. Nu este foarte clar titlul, dar nu-mi dau seama cum as putea sa-l fac mai clar.

Exista vreo varianta in care pot face NGINX sa ruleze aplicatii Node.js la fel cum se intampla in IIS cu IISNode?

Pt cei ce n-au folosit IIS:

Practic sa rulez o aplicatie Node.js fara proxy in NGINX.

Mercic :kiss:

De ce nu prin proxy?

server {
        listen 8880;
        server_name _;

        location / {
             proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
             proxy_set_header  X-Forwarded-Proto $scheme;
             proxy_set_header  Host              $host;
             proxy_set_header Upgrade            $http_upgrade;
             proxy_set_header Connection         "upgrade";
             proxy_http_version                  1.1;
             proxy_pass                          http://127.0.0.1:13378; <<< schimbi portul aici
           }
}

Dai și fundă? :sweat_smile::sweat_smile:

Este destul de greu de tinut evidenta porturilor cand ai 30+ aplicatii, de aceea caut o solutie care sa nu depinda de reverse proxy. Pe langa asta, depinzi de PM2 ca sa iti tina aplicatia pornita.

Mi-ai deblocat o amintire :))))))

Nu știu cum rulează node în producție și ce setup cere, dar uită-te și la fast_cgi.

1 Like

Poti sa ne faci o diagrama cu ce ai acum si unde ai vrea sa fie nginx folosit?
Ceva nu imi suna bine cu cele “30 de aplicatii”

Aplicatiile de care am spus mai sus sunt fictive. Era doar un exemplu ca este greu de tinut evidenta porturilor cand ai n aplicatii.

Scopul acestui thread este de a afla daca exista vreo varianta, iar daca exista vreau sa o compar cu IISNode (timp de raspuns, volum de trafic etc).

Si IIS tot proxy e, doar ca foloseste named pipe din descriere.

Poti face ceva similar si cu nginx (sub Linux/BSD).

1 Like

Cand ai mai multe aplicatii, servicii, microservicii, etc… fiecare utilizand un port ori te conectezi la ele ca atare fie le concentrezi intr-un proxy reverse oricare ar fi acela si separi serviciile prin ruta. Nu vad cum ai putea rezolva altfel acesta situatie.

Daca te ajuta, eu pentru astfel de situatii am mai folosit un proxy reverse simplu:

1 Like

Nginx este unul din cele mai folosite web-server/proxy si clar duce traficul. Poti defini in configuratie mai multe “servere” care fiecare raspunde la un dns si apoi in functie de dns faci proxy unde ai nevoie. Din pacate mai multe servicii nu pot expune acelasi port si atunci serverele de node vor trebui fiecare configurate pe portul ei si apoi din nginx faci pass catre portul care trebuie, iar ngnix va expune 80/443. Singura varianta in care scapi de bataia de cap cu porturile este daca folosesti containere.

2 Likes

Cu Unix socket configurezi fiecare node cu fisierul sau in loc de port. Poate fi mai usor de intretinut.

2 Likes