Jak skonfigurować Nginx jako odwrotną proxy dla aplikacji Nodejs
- 5048
- 423
- Juliusz Sienkiewicz
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
.
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.LanAccess 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.
- « Jak uruchomić tryb ratowania lub tryb awaryjny w Ubuntu 20.04 /18.04
- Jak zainstalować PHP 8.0 na Ubuntu 20.04 /18.04 »