Com configurar Nginx com a servidor intermediari invers per a l'aplicació Nodejs
Nodejs és un marc de JavaScript de codi obert gratuït, lleuger, escalable i eficaç construït al motor JavaScript V8 de Chrome i utilitza un model d'E/S sense bloqueig i basat en esdeveniments. Nodejs és ara a tot arreu i s'ha tornat tan popular per desenvolupar programari des de llocs web, aplicacions web fins a aplicacions de xarxa i molt més.
Nginx és un servidor HTTP d'alt rendiment de codi obert, equilibrador de càrrega i programari de servidor intermediari invers. Té un llenguatge de configuració senzill que fa que sigui fàcil de configurar. En aquest article, mostrarem com configurar Nginx com a servidor intermediari invers per a les aplicacions de Nodejs.
Nota: si el vostre sistema ja s'executa amb Nodejs i NPM i la vostra aplicació s'executa en un port determinat, aneu directament al pas 4.
Pas 1: instal·lació de Nodejs i NPM a Linux
L'última versió de Node.js i NPM està disponible per instal·lar-se des del dipòsit oficial de distribucions binaris de NodeSource Enterprise Linux, Fedora, Debian i Ubuntu, que es manté al lloc web de Nodejs i l'haureu d'afegir al vostre sistema per poder fer-ho. instal·leu els darrers paquets Nodejs i NPM tal com es mostra.
---------- 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
---------- 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 -
Pas 2: Creació d'una aplicació Nodejs
Amb finalitats de demostració, crearem una aplicació de mostra anomenada sysmon, que s'executarà al port 5000 tal com es mostra.
$ sudo mkdir -p /var/www/html/sysmon $ sudo vim /var/www/html/sysmon/server.js
Copieu i enganxeu el codi següent al fitxer server.js (substituïu 192.168.43.31 per la IP del vostre servidor).
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}/`); });
Desa el fitxer i surt.
Ara inicieu la vostra aplicació de nodes amb l'ordre següent (premeu Ctrl+x
per finalitzar-la).
$ 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
Ara obriu un navegador i accediu a la vostra aplicació a l'URL http://198.168.43.31:5000
.
Pas 3: instal·leu Nginx Reverse Proxy a Linux
Instal·larem la darrera versió de Nginx des del dipòsit oficial, tal com es mostra a continuació.
Creeu un fitxer anomenat /etc/apt/sources.list.d/nginx.list i afegiu-hi les línies següents.
deb http://nginx.org/packages/ubuntu/ bionic nginx deb-src http://nginx.org/packages/ubuntu/ bionic nginx
A continuació, afegiu la clau de signatura del dipòsit, actualitzeu l'índex de paquets del vostre sistema i instal·leu el paquet nginx de la següent manera.
$ wget --quiet http://nginx.org/keys/nginx_signing.key && sudo apt-key add nginx_signing.key $ sudo apt update $ sudo apt install nginx
Creeu un fitxer anomenat /etc/yum.repos.d/nginx.repo i enganxeu una de les configuracions següents.
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever
/$basearch/ gpgcheck=0 enabled=1
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/rhel/$releasever
/$basearch/ gpgcheck=0 enabled=1
Nota: a causa de les diferències entre com CentOS i RHEL, cal substituir $releasever
per 6 (per a 6.x) o 7 (per a 7.x), depenent de la versió del vostre sistema operatiu.
A continuació, afegiu la clau de signatura del dipòsit i instal·leu el paquet nginx tal com es mostra.
# wget --quiet http://nginx.org/keys/nginx_signing.key && rpm --import nginx_signing.key # yum install nginx
Després d'instal·lar correctament Nginx, inicieu-lo, activeu-lo per iniciar-se automàticament a l'arrencada del sistema i comproveu si està en funcionament.
---------- 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
Si esteu executant un tallafoc del sistema, heu d'obrir el port 80 (HTTP), 443 (HTTPS) i 5000 (aplicació Node), que el servidor web escolta per a les sol·licituds de connexió del client.
---------- 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
Pas 4: configureu Nginx com a servidor intermediari invers per a l'aplicació Nodejs
Ara creeu un fitxer de configuració de bloc de servidor per a la vostra aplicació Node a /etc/nginx/conf.d/ tal com es mostra.
$ sudo vim /etc/nginx/conf.d/sysmon.conf
Copieu i enganxeu la configuració següent (canvieu 192.168.43.31 amb la IP del vostre servidor i tecmint.lan amb el vostre nom de domini).
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; } }
Deseu els canvis i sortiu del fitxer.
Finalment, reinicieu el servei Nginx per efectuar els canvis recents.
$ sudo systemctl restart nginx OR # systemctl restart nginx
Pas 5: accediu a l'aplicació Nodejs mitjançant el navegador web
Ara hauríeu de poder accedir a la vostra aplicació Node sense proporcionar el port on escolta, a l'URL: aquesta és una manera molt còmoda perquè els usuaris hi accedeixin.
http://sysmon.tecmint.lan
Perquè el vostre nom de domini de prova funcioni, heu de configurar el DNS local mitjançant el fitxer /etc/hosts, obrir-lo i afegir-hi la línia següent (recordeu canviar 192.168.43.31 amb la IP del vostre servidor i tecmint.lan amb el vostre nom de domini). com abans).
192.168.43.31 sysmon.tecmint.lan
Això és tot! En aquest article, vam mostrar com configurar Nginx com a servidor intermediari invers per a les aplicacions de Nodejs. Utilitzeu el formulari de comentaris següent per fer qualsevol pregunta o compartir les vostres opinions sobre aquest article.