Kuinka määrittää Nginx käänteiseksi välityspalvelimeksi Nodejs-sovellukselle


Nodejs on ilmainen avoimen lähdekoodin, kevyt, skaalautuva ja tehokas JavaScript-kehys, joka on rakennettu Chromen V8 JavaScript -moottoriin ja käyttää tapahtumalähtöistä, estämätöntä I/O-mallia. Nodejs on nyt kaikkialla, ja siitä on tullut niin suosittu ohjelmistojen kehittäjänä verkkosivustoista, verkkosovelluksista verkkosovelluksiin ja muuhun.

Nginx on avoimen lähdekoodin, korkean suorituskyvyn HTTP-palvelin, kuormituksen tasapainotin ja käänteinen välityspalvelinohjelmisto. Siinä on suoraviivainen määrityskieli, joka helpottaa määrittämistä. Tässä artikkelissa näytämme, kuinka Nginx määritetään käänteiseksi välityspalvelimeksi Nodejs-sovelluksille.

Lue myös: Lopullinen opas Nginx-verkkopalvelimen suojaamiseen, vahvistamiseen ja suorituskyvyn parantamiseen

Huomaa: jos järjestelmässäsi on jo käytössä Nodejs ja NPM ja sovelluksesi on käynnissä tietyssä portissa , siirry suoraan vaiheeseen 4.

Vaihe 1: Asenna Nodejs ja NPM Linuxiin

Uusimmat Node.js- ja NPM-versiot ovat asennettavissa virallisesta NodeSource Enterprise Linux-, Fedora-, Debian- ja Ubuntu-binäärijakeluvarastosta, jota ylläpitää Nodejs-verkkosivusto. ja sinun on lisättävä se järjestelmääsi, jotta voit asentaa uusimmat Nodejs- ja NPM-paketit kuvan mukaisesti.

Debianissa/Ubuntussa

---------- Install Node.js v11.x ---------- 
curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -
sudo apt-get install -y nodejs

---------- Install Node.js v10.x ----------
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs

CentOS/RHEL:ssä ja Fedorassa

---------- Install Node.js v11.x ---------- 
curl -sL https://rpm.nodesource.com/setup_11.x | bash -

---------- Install Node.js v10.x ----------
curl -sL https://rpm.nodesource.com/setup_10.x | bash -

Vaihe 2: Luo Nodejs-sovellus

Esittelyä varten luomme esimerkkisovelluksen nimeltä "sysmon", joka toimii portissa 5000 kuvan mukaisesti.

sudo mkdir -p /var/www/html/sysmon
sudo vim /var/www/html/sysmon/server.js

Kopioi ja liitä seuraava koodi server.js-tiedostoon (korvaa 192.168.43.31 palvelimesi IP-osoitteella).

const http = require('http');

const hostname = '192.168.43.31';
const port = 5000;

const server = http.createServer((req, res) => {
	res.statusCode = 200;
  	res.setHeader('Content-Type', 'text/plain');
  	res.end('Sysmon App is Up and Running!\n');
});

server.listen(port, hostname, () => {
  	console.log(`Server running at http://${hostname}:${port}/`);
});

Tallenna tiedosto ja poistu.

Käynnistä nyt solmusovellus seuraavalla komennolla (lopeta se painamalla Ctrl+x).

sudo node /var/www/html/sysmon/server.js
OR
sudo node /var/www/html/sysmon/server.js &   #start it in the background to free up your terminal

Avaa nyt selain ja käytä sovellustasi URL-osoitteessa http://198.168.43.31:5000.

Vaihe 3: Asenna Nginx Reverse Proxy Linuxiin

Asennamme Nginxin uusimman version virallisesta arkistosta alla olevan kuvan mukaisesti.

Debianissa/Ubuntussa

Luo tiedosto nimeltä /etc/apt/sources.list.d/nginx.list ja lisää siihen seuraavat rivit.

deb http://nginx.org/packages/ubuntu/ bionic nginx
deb-src http://nginx.org/packages/ubuntu/  bionic nginx

Lisää seuraavaksi arkiston allekirjoitusavain, päivitä järjestelmäpakettisi indeksi ja asenna nginx-paketti seuraavasti.

wget --quiet http://nginx.org/keys/nginx_signing.key && sudo apt-key add nginx_signing.key
sudo apt update
sudo apt install nginx

CentOS/RHEL:ssä ja Fedorassa

Luo tiedosto nimeltä /etc/yum.repos.d/nginx.repo ja liitä jokin alla olevista määrityksistä.

CentOS
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1
RHEL
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/ gpgcheck=0 enabled=1

Huomaa: CentOS:n ja RHEL:n välisten erojen vuoksi $releasever on korvattava joko 6:lla. (6.x) tai 7 (7.x) käyttöjärjestelmäversiostasi riippuen.

Lisää seuraavaksi arkiston allekirjoitusavain ja asenna nginx-paketti kuvan mukaisesti.

wget --quiet http://nginx.org/keys/nginx_signing.key && rpm --import nginx_signing.key
yum install nginx

Kun Nginx on asennettu onnistuneesti, käynnistä se, ota se käyttöön automaattisesti järjestelmän käynnistyksen yhteydessä ja tarkista, onko se käytössä.

---------- On Debian/Ubuntu ---------- 
sudo systemctl status nginx
sudo systemctl enable nginx
sudo systemctl status nginx

---------- On CentOS/RHEL ---------- 
systemctl status nginx
systemctl enable nginx
systemctl status nginx

Jos käytät järjestelmän palomuuria, sinun on avattava portti 80 (HTTP), 443 (HTTPS) ja 5000 (solmusovellus), jota web-palvelin kuuntelee asiakkaan yhteyspyyntöjä.

---------- On Debian/Ubuntu ---------- 
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 5000/tcp
sudo ufw reload

---------- On CentOS/RHEL ---------- 
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-port=5000/tcp
firewall-cmd --reload 

Vaihe 4: Määritä Nginx käänteiseksi välityspalvelimeksi Nodejs-sovellukselle

Luo nyt palvelinlohkon määritystiedosto Node-sovelluksellesi kohdassa /etc/nginx/conf.d/ kuvan mukaisesti.

sudo vim /etc/nginx/conf.d/sysmon.conf 

Kopioi ja liitä seuraavat asetukset (muuta 192.168.43.31 palvelimesi IP-osoitteella ja tecmint.lan verkkotunnuksellasi).

server {
    listen 80;
    server_name sysmon.tecmint.lan;

    location / {
        proxy_set_header   X-Forwarded-For $remote_addr;
        proxy_set_header   Host $http_host;
        proxy_pass         http://192.168.43.31:5000;
    }
}

Tallenna muutokset ja poistu tiedostosta.

Lopuksi käynnistä Nginx-palvelu uudelleen tehdäksesi viimeisimmät muutokset.

sudo systemctl restart nginx
OR
systemctl restart nginx

Vaihe 5: Käytä Nodejs-sovellusta verkkoselaimen kautta

Nyt sinun pitäisi pystyä käyttämään Node-sovellusta ilmoittamatta porttia, jota se kuuntelee, URL-osoitteessa: tämä on erittäin kätevä tapa käyttäjille käyttää sitä.

http://sysmon.tecmint.lan 

Jotta testiverkkotunnuksesi toimisi, sinun on määritettävä paikallinen DNS /etc/hosts-tiedoston avulla, avattava se ja lisättävä siihen alla oleva rivi (muista muuttaa 192.168.43.31. palvelimesi IP-osoitteella ja tecmint.lan doamin-nimelläsi kuten aiemmin).

192.168.43.31 sysmon.tecmint.lan

Siinä kaikki! Tässä artikkelissa näytimme, kuinka Nginx määritetään käänteiseksi välityspalvelimeksi Nodejs-sovelluksille. Käytä alla olevaa palautelomaketta esittääksesi kysymyksiä tai jakaaksesi ajatuksesi tästä artikkelista.