Jinsi ya kusanidi Nginx kama Wakala wa Nyuma wa Programu ya Nodejs


Nodejs ni chanzo huria kisicholipishwa, chepesi, inayoweza kupanuka na bora zaidi ya mfumo wa JavaScript uliojengwa kwenye injini ya JavaScript ya V8 ya Chrome, na hutumia kielelezo cha I/O kinachoendeshwa na tukio, kisichozuia. Nodejs sasa iko kila mahali, na imekuwa maarufu sana kwa kutengeneza programu kutoka kwa wavuti, programu za wavuti hadi programu za mtandao na zaidi.

Nginx ni chanzo huria, seva ya HTTP yenye utendakazi wa hali ya juu, sawazisha la upakiaji na programu ya wakala ya kubadili nyuma. Ina lugha ya usanidi iliyonyooka na kuifanya iwe rahisi kusanidi. Katika nakala hii, tutaonyesha jinsi ya kusanidi Nginx kama wakala wa nyuma wa programu za Nodejs.

Kumbuka: Ikiwa mfumo wako tayari unatumia Nodejs na NPM, na programu yako iendeshe kwenye mlango fulani, nenda moja kwa moja hadi Hatua ya 4.

Hatua ya 1: Kufunga Nodejs na NPM kwenye Linux

Toleo la hivi punde la Node.js na NPM linapatikana ili kusakinishwa kutoka kwa hazina rasmi ya NodeSource Enterprise Linux, Fedora, Debian na Ubuntu, ambayo inadumishwa na tovuti ya Nodejs na utahitaji kuiongeza kwenye mfumo wako ili uweze sasisha vifurushi vya hivi karibuni vya Nodejs na NPM kama inavyoonyeshwa.

---------- 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 -

Hatua ya 2: Kuunda Programu ya Nodejs

Kwa madhumuni ya onyesho, tutaunda sampuli ya programu inayoitwa sysmon, ambayo itaendeshwa kwenye bandari 5000 kama inavyoonyeshwa.

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

Nakili na ubandike msimbo ufuatao katika faili ya server.js (badilisha 192.168.43.31 na IP ya seva yako).

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}/`);
});

Hifadhi faili na uondoke.

Sasa anza programu yako ya nodi kwa kutumia amri ifuatayo (bonyeza Ctrl+x ili kuizima).

$ 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

Sasa fungua kivinjari na ufikie programu yako kwenye URL http://198.168.43.31:5000.

Hatua ya 3: Sakinisha Wakala wa Reverse wa Nginx kwenye Linux

Tutasakinisha toleo la hivi punde la Nginx kutoka kwa hazina rasmi, kama inavyoonyeshwa hapa chini.

Unda faili inayoitwa /etc/apt/sources.list.d/nginx.list na uongeze mistari ifuatayo kwake.

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

Ifuatayo, ongeza ufunguo wa kusaini hazina, sasisha faharisi ya kifurushi chako cha mfumo na usakinishe kifurushi cha nginx kama ifuatavyo.

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

Unda faili inayoitwa /etc/yum.repos.d/nginx.repo na ubandike mojawapo ya usanidi ulio hapa chini.

[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

Kumbuka: Kwa sababu ya tofauti kati ya jinsi CentOS na RHEL, ni muhimu kubadilisha $releasever na 6 (kwa 6.x) au 7 (kwa 7.x), kulingana na toleo lako la OS.

Ifuatayo, ongeza ufunguo wa kusaini hazina na usakinishe kifurushi cha nginx kama inavyoonyeshwa.

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

Baada ya kusakinisha Nginx kwa mafanikio, ianze, iwezeshe kuanza kiotomatiki kwenye buti ya mfumo na uangalie ikiwa iko na inafanya kazi.

---------- 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

Ikiwa unatumia ngome ya mfumo, unahitaji kufungua mlango 80 (HTTP), 443 (HTTPS) na 5000 (programu ya Node), ambayo seva ya wavuti husikiliza kwa maombi ya muunganisho wa mteja.

---------- 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 

Hatua ya 4: Sanidi Nginx kama Wakala wa Nyuma kwa Utumizi wa Nodejs

Sasa unda faili ya usanidi wa kuzuia seva kwa programu yako ya Node chini ya /etc/nginx/conf.d/ kama inavyoonyeshwa.

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

Nakili na ubandike usanidi ufuatao (badilisha 192.168.43.31 na IP ya seva yako na tecmint.lan kwa jina la kikoa chako).

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;
    }
}

Hifadhi mabadiliko na uondoke kwenye faili.

Hatimaye, anzisha upya huduma ya Nginx ili kutekeleza mabadiliko ya hivi majuzi.

$ sudo systemctl restart nginx
OR
# systemctl restart nginx

Hatua ya 5: Fikia Programu ya Nodejs kupitia Kivinjari cha Wavuti

Sasa unapaswa kuwa na uwezo wa kufikia programu yako ya Node bila kutoa bandari inasikiliza, katika URL: hii ni njia rahisi kwa watumiaji kuipata.

http://sysmon.tecmint.lan 

Ili jina la kikoa chako cha jaribio lifanye kazi, unahitaji kusanidi DNS ya ndani kwa kutumia /etc/hosts faili, ifungue na uongeze laini iliyo hapa chini (kumbuka kubadilisha 192.168.43.31 na IP ya seva yako na tecmint.lan kwa jina lako la doamin. kama hapo awali).

192.168.43.31 sysmon.tecmint.lan

Ni hayo tu! Katika nakala hii, tulionyesha jinsi ya kusanidi Nginx kama proksi ya nyuma ya programu za Nodejs. Tumia fomu ya maoni iliyo hapa chini kuuliza maswali yoyote au kushiriki mawazo yako kuhusu makala haya.