Jak skonfigurować Nginx jako odwrotną proxy dla aplikacji Nodejs

Jak skonfigurować Nginx jako odwrotną proxy dla aplikacji Nodejs

NodeJS jest bezpłatnym open source, lekkim, skalowalnym i wydajnym frameworkiem JavaScript zbudowanym na silniku JavaScript Chrome i wykorzystuje model oparty na zdarze. NodeJS jest teraz wszędzie i stał się tak popularny w tworzeniu oprogramowania od stron internetowych, aplikacji internetowych po aplikacje sieciowe i więcej.

Nginx jest oprogramowaniem typu open source, wysokowydajny serwer HTTP, Balancer i odwrotne oprogramowanie proxy. Ma prosty język konfiguracyjny ułatwiający konfigurację. W tym artykule pokażemy, jak skonfigurować Nginx jako odwrotną proxy dla aplikacji NodeJS.

Przeczytaj także: Najlepszy przewodnik po zabezpieczeniu, stwardnienia i poprawie wydajności serwera WWW Nginx

Notatka: Jeśli Twój system już działa NodeJS I NPM, i poproś swoją aplikację na określonym porcie, idź prosto do Krok 4.

Krok 1: Instalowanie Nodejów i NPM w Linux

Najnowsza wersja Węzeł.JS I NPM Jest dostępny do instalacji z oficjalnego repozytorium dystrybucji dystrybucji dystrybucji Nodesource Enterprise, Fedora, Debian i Ubuntu, które jest prowadzone przez stronę Nodejs i musisz dodać go do systemu, aby móc zainstalować najnowsze pakiety NodeJS i NPM, jak pokazano.

Na Debian/Ubuntu

---------- Zainstaluj węzeł.JS V11.X ---------- $ curl -sl https: // deb.węzłów.com/setup_11.x | sudo -e bash -$ sudo apt -get instal -y nodejs ---------- Zainstaluj węzeł.JS V10.X ---------- $ curl -sl https: // deb.węzłów.com/setup_10.x | sudo -e bash -$ sudo apt -get instal -y nodejs 

Na Centos/Rhel i Fedora

---------- Zainstaluj węzeł.JS V11.X ---------- $ curl -sl https: // rpm.węzłów.com/setup_11.x | grzmotnąć - ---------- Zainstaluj węzeł.JS V10.X ---------- $ curl -sl https: // rpm.węzłów.com/setup_10.x | grzmotnąć - 

Krok 2: Tworzenie aplikacji Nodejs

Do celów demonstracyjnych będziemy tworzyć przykładową aplikację o nazwie „Sysmon”, które będą działać na porcie 5000 jak pokazano.

$ sudo mkdir -p/var/www/html/sysmon $ sudo vim/var/www/html/sysmon/serwer.JS 

Skopiuj i wklej następujący kod w serwer.JS plik (zamień 192.168.43.31 z adresem IP serwera).

const http = wymaga („http”); const hostName = '192.168.43.31';; Const Port = 5000; const Server = http.createServer ((req, res) => res.STATHCODE = 200; res.Setheader („Content-Type”, „Text/Plain”); res.koniec („Aplikacja Sysmon jest uruchomiona!\N'); ); serwer.Listen (port, nazwa hosta, () => konsola.log ('serwer działający na http: // $ hostName: $ port/'); ); 

Zapisz plik i wyjdź.

Teraz uruchom aplikację Node przy użyciu następującego polecenia (naciśnij Ctrl+x Aby to zakończyć).

$ sudo węzeł/var/www/html/sysmon/serwer.JS lub $ sudo node/var/www/html/sysmon/serwer.JS & #start w tle, aby zwolnić terminal 

Teraz otwórz przeglądarkę i uzyskaj dostęp do aplikacji w adresie URL http: // 198.168.43.31: 5000.

Access Node App z przeglądarki

Krok 3: Zainstaluj odwrotną proxy w Linux

Zainstalujemy najnowszą wersję Nginx z oficjalnego repozytorium, jak pokazano poniżej.

Na Debian/Ubuntu

Utwórz plik o nazwie /etc/apt/źródła.lista.D/nginx.lista i dodaj do niego następujące wiersze.

Deb http: // nginx.org/pakiety/ubuntu/bionic nginx deb-src http: // nginx.org/pakiety/ubuntu/bionic nginx 

Następnie dodaj klawisz podpisujący repozytorium, zaktualizuj indeks pakietu systemowego i zainstaluj pakiet Nginx w następujący sposób.

$ wget --quiet http: // nginx.org/keys/nginx_signing.klucz && sudo apt-key dodaj nginx_signing.Klucz $ sudo apt aktualizacja $ sudo apt instal instaluj nginx 

Na Centos/Rhel i Fedora

Utwórz plik o nazwie /etc/mniam.repozytorium.D/nginx.Repo i wklej jedną z poniższych konfiguracji.

Centos
[nginx] nazwa = nginx repo baseurl = http: // nginx.org/pakiety/centos/$ releasever/ $ basearch/ gpgCheck = 0 włączony = 1
Rhel
[nginx] nazwa = nginx repo baseurl = http: // nginx.org/pakiety/rhel/$ releasever/ $ basearch/ gpgCheck = 0 włączony = 1

Notatka: Ze względu na różnice między tym, w jaki sposób centos i RHEL należy wymienić $ releasever z jednym z nich 6 (Do 6.X) Lub 7 (Do 7.X), w zależności od wersji systemu operacyjnego.

Następnie dodaj klawisz podpisujący repozytorium i zainstaluj pakiet Nginx, jak pokazano.

# wget --quiet http: // nginx.org/keys/nginx_signing.klucz && rpm --mport nginx_signing.Klucz # Yum Instal nginx 

Po pomyślnym zainstalowaniu Nginx, Uruchom go, włącz automatyczne start w systemie i sprawdź, czy jest uruchomiony.

---------- Na Debian/Ubuntu ---------- $ sudo Systemctl Status nginx $ sudo systemctl Włącz Nginx $ sudo Systemctl Status nginx ---------- Na Centos/Rhel ---------- # SystemCTL Status Nginx # Systemctl Włącz Nginx # Systemctl Status Nginx 

Jeśli uruchamiasz zapór systemu, musisz otworzyć port 80 (HTTP), 443 (HTTPS) I 5000 (aplikacja węzłowa), które serwer WWW słucha żądań połączenia klienta.

---------- Na Debian/Ubuntu ---------- $ sudo ufw zezwolić 80/tcp $ sudo ufw zezwolić 443/tcp $ sudo ufw zezwolić 5000/tcp $ sudo ufw Reload ---------- Na Centos/Rhel ---------- # Firewall-CMD --Permanent --add-port = 80/tcp # Firewall-CMD --Permanent --add-port = 443/tcp # Firewall-CMD --Permanent --add-Port = 5000/TCP # FirewallAllAll -CMD - -RELOOD 

Krok 4: Skonfiguruj Nginx jako odwrotną proxy dla aplikacji NodeJS

Teraz utwórz plik konfiguracyjny bloku serwera dla aplikacji węzłowej poniżej /etc/nginx/conf.D/ jak pokazano.

$ sudo vim/etc/nginx/conf.D/sysmon.conf 

Skopiuj i wklej następującą konfigurację (zmiana 192.168.43.31 z adresem IP serwera i Tecmint.Lan z nazwą domeny).

serwer Słuchaj 80; Nazwa serwera Sysmon.Tecmint.Lan; lokalizacja / proxy_set_header x-forwarted-for $ remote_addr; proxy_set_header host $ http_host; proxy_pass http: // 192.168.43.31: 5000;  

Zapisz zmiany i wyjdź z pliku.

Wreszcie, uruchom ponownie usługę Nginx, aby wprowadzić ostatnie zmiany.

$ sudo systemctl restart nginx lub # Systemctl restart nginx 

Krok 5: Dostęp do aplikacji Nodejs za pośrednictwem przeglądarki internetowej

Teraz powinieneś być w stanie uzyskać dostęp do aplikacji Node bez dostarczenia portu, na którym słucha, w adresie URL: jest to bardzo wygodny sposób dla użytkowników dostępu.

http: // sysmon.Tecmint.Lan 

Aby nazwa domeny testowej będzie działać, musisz skonfigurować lokalne DN za pomocą /etc/hosts plik, otwórz go i dodaj poniższy wiersz (pamiętaj, aby zmienić 192.168.43.31 z adresem IP serwera i Tecmint.Lan z nazwą Doamina jak poprzednio).

192.168.43.31 Sysmon.Tecmint.Lan 
Access Node App przez Nginx Reverse Proxy

To wszystko! W tym artykule pokazaliśmy, jak skonfigurować Nginx jako odwrotną proxy dla aplikacji NodeJS. Skorzystaj z poniższego formularza opinii, aby zadać wszelkie pytania lub podziel się przemyśleniami na temat tego artykułu.