Kif tikkonfigura Nginx bħala Reverse Proxy għall-App Nodejs
Nodejs huwa qafas JavaScript ta' sors miftuħ b'xejn, ħafif, skalabbli u effiċjenti mibni fuq il-magna JavaScript V8 ta' Chrome, u juża mudell I/O mmexxi mill-avvenimenti, li ma jimblokkax. Nodejs issa jinsab kullimkien, u sar tant popolari għall-iżvilupp ta 'softwer minn websajts, apps tal-web għal apps tan-netwerk u aktar.
Nginx huwa sors miftuħ, server HTTP ta 'prestazzjoni għolja, bilanċjar tat-tagħbija u softwer ta' prokura inversa. Għandha lingwa ta 'konfigurazzjoni sempliċi li tagħmilha faċli biex tiġi kkonfigurata. F'dan l-artikolu, ser nuru kif tikkonfigura Nginx bħala prokura inversa għall-applikazzjonijiet Nodejs.
Nota: Jekk is-sistema tiegħek diġà qed taħdem b'Nodejs u NPM, u għandek l-app tiegħek taħdem fuq ċertu port, mur dritt għall-Pass 4.
Pass 1: Installazzjoni ta 'Nodejs u NPM fil-Linux
L-aħħar verżjoni ta’ Node.js u NPM hija disponibbli biex tinstalla mir-repożitorju uffiċjali tad-distribuzzjonijiet binarji ta’ NodeSource Enterprise Linux, Fedora, Debian u Ubuntu, li jinżamm mill-websajt Nodejs u ser ikollok bżonn iżżidha mas-sistema tiegħek biex tkun tista’ installa l-aħħar pakketti Nodejs u NPM kif muri.
---------- 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 -
Pass 2: Ħolqien ta 'Applikazzjoni Nodejs
Għal skop ta 'dimostrazzjoni, se nkunu qed noħolqu applikazzjoni kampjun imsejħa sysmon, li se taħdem fuq il-port 5000 kif muri.
$ sudo mkdir -p /var/www/html/sysmon $ sudo vim /var/www/html/sysmon/server.js
Ikkopja u waħħal il-kodiċi li ġej fil-fajl server.js (issostitwixxi 192.168.43.31 bl-IP tas-server tiegħek).
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}/`); });
Issejvja l-fajl u oħroġ.
Issa ibda l-applikazzjoni tan-node tiegħek billi tuża l-kmand li ġej (agħfas Ctrl+x
biex ittemmha).
$ 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
Issa tiftaħ browser u aċċess għall-applikazzjoni tiegħek fil-URL http://198.168.43.31:5000
.
Pass 3: Installa Nginx Reverse Proxy fil-Linux
Aħna se ninstallaw l-aħħar verżjoni ta 'Nginx mir-repożitorju uffiċjali, kif muri hawn taħt.
Oħloq fajl imsejjaħ /etc/apt/sources.list.d/nginx.list u żid il-linji li ġejjin miegħu.
deb http://nginx.org/packages/ubuntu/ bionic nginx deb-src http://nginx.org/packages/ubuntu/ bionic nginx
Sussegwentement, żid iċ-ċavetta tal-iffirmar tar-repożitorju, aġġorna l-indiċi tal-pakkett tas-sistema tiegħek u installa l-pakkett nginx kif ġej.
$ wget --quiet http://nginx.org/keys/nginx_signing.key && sudo apt-key add nginx_signing.key $ sudo apt update $ sudo apt install nginx
Oħloq fajl bl-isem /etc/yum.repos.d/nginx.repo u waħħal waħda mill-konfigurazzjonijiet hawn taħt.
[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: Minħabba d-differenzi bejn kif CentOS u RHEL, huwa meħtieġ li tissostitwixxi $releasever
jew b'6 (għal 6.x) jew 7 (għal 7.x), skont il-verżjoni tal-OS tiegħek.
Sussegwentement, żid iċ-ċavetta tal-iffirmar tar-repożitorju u installa l-pakkett nginx kif muri.
# wget --quiet http://nginx.org/keys/nginx_signing.key && rpm --import nginx_signing.key # yum install nginx
Wara li tinstalla Nginx b'suċċess, ibdah, ippermettih li jibda awtomatikament fil-boot tas-sistema u ċċekkja jekk huwiex qed jaħdem.
---------- 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
Jekk qed tħaddem firewall tas-sistema, għandek bżonn tiftaħ il-port 80 (HTTP), 443 (HTTPS) u 5000 (app Node), li s-server tal-web jisma' għal talbiet ta' konnessjoni tal-klijenti.
---------- 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
Pass 4: Ikkonfigura Nginx bħala Reverse Proxy Għall-Applikazzjoni Nodejs
Issa oħloq fajl tal-konfigurazzjoni tal-blokk tas-server għall-app Node tiegħek taħt /etc/nginx/conf.d/ kif muri.
$ sudo vim /etc/nginx/conf.d/sysmon.conf
Ikkopja u waħħal il-konfigurazzjoni li ġejja (biddlu 192.168.43.31 bl-IP tas-server tiegħek u tecmint.lan bl-isem tad-dominju tiegħek).
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; } }
Issejvja l-bidliet u oħroġ mill-fajl.
Fl-aħħarnett, ibda mill-ġdid is-servizz Nginx biex taffettwa l-bidliet riċenti.
$ sudo systemctl restart nginx OR # systemctl restart nginx
Pass 5: Aċċess għall-Applikazzjoni Nodejs permezz tal-Web Browser
Issa għandek tkun tista' taċċessa l-app Node tiegħek mingħajr ma tipprovdi l-port li tkun qed tisma' fuqu, fil-URL: dan huwa mod konvenjenti ħafna għall-utenti biex jaċċessawha.
http://sysmon.tecmint.lan
Biex l-isem tad-dominju tat-test tiegħek jaħdem, trid issettja d-DNS lokali billi tuża l-fajl /etc/hosts, tiftaħha u żid il-linja hawn taħt fiha (ftakar li tibdel 192.168.43.31 bl-IP tas-server tiegħek u tecmint.lan bl-isem tad-doamin tiegħek bħal qabel).
192.168.43.31 sysmon.tecmint.lan
Dak kollox! F'dan l-artikolu, urejna kif tikkonfigura Nginx bħala prokura inversa għall-applikazzjonijiet Nodejs. Uża l-formola ta' feedback hawn taħt biex tistaqsi kwalunkwe mistoqsija jew taqsam il-ħsibijiet tiegħek dwar dan l-artikolu.