Yadda ake saita Nginx azaman wakili na baya don Nodejs App


Nodejs shine tushen buɗewa kyauta, mai nauyi, mai daidaitawa da ingantaccen tsarin JavaScript wanda aka gina akan injin V8 JavaScript na Chrome, kuma yana amfani da ƙirar I/O da ba ta toshewa. Nodejs yanzu yana ko'ina, kuma ya zama sananne don haɓaka software daga gidajen yanar gizo, aikace-aikacen yanar gizo zuwa aikace-aikacen cibiyar sadarwa da ƙari.

Nginx buɗaɗɗen tushe ne, sabar HTTP mai girma, mai ɗaukar nauyi da software na juyi. Yana da yaren daidaitawa kai tsaye wanda ke sa sauƙin daidaitawa. A cikin wannan labarin, za mu nuna yadda ake saita Nginx azaman wakili na baya don aikace-aikacen Nodejs.

Lura: Idan tsarin ku ya riga yana gudana tare da Nodejs da NPM, kuma app ɗin ku yana gudana akan takamaiman tashar jiragen ruwa, tafi kai tsaye zuwa Mataki na 4.

Mataki 1: Shigar da Nodejs da NPM a cikin Linux

Sabuwar sigar Node.js da NPM tana samuwa don shigarwa daga hukuma ta NodeSource Enterprise Linux, Fedora, Debian da Ubuntu binary rarraba ma'ajiyar, wanda gidan yanar gizon Nodejs ke kiyaye shi kuma kuna buƙatar ƙara shi zuwa tsarin ku don samun damar. shigar da sabbin fakitin Nodejs da NPM kamar yadda aka nuna.

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

Mataki 2: Ƙirƙirar aikace-aikacen Nodejs

Don dalilai na nunawa, za mu ƙirƙiri samfurin aikace-aikacen da ake kira sysmon, wanda zai gudana akan tashar jiragen ruwa 5000 kamar yadda aka nuna.

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

Kwafi da liƙa lambar mai zuwa a cikin fayil ɗin uwar garken.js (maye gurbin 192.168.43.31 tare da IP uwar garken ku).

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

Ajiye fayil ɗin kuma fita.

Yanzu fara aikace-aikacen node ɗin ku ta amfani da umarni mai zuwa (latsa Ctrl+x don ƙare shi).

$ 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

Yanzu buɗe mashigar bincike kuma sami damar aikace-aikacenku a URL http://198.168.43.31:5000.

Mataki 3: Sanya Nginx Reverse Proxy a cikin Linux

Za mu shigar da sabon sigar Nginx daga ma'ajiyar hukuma, kamar yadda aka nuna a ƙasa.

Ƙirƙiri fayil mai suna /etc/apt/sources.list.d/nginx.list kuma ƙara layin masu zuwa gare shi.

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

Na gaba, ƙara maɓallin sa hannu na ma'ajiya, sabunta fihirisar fakitin tsarin ku kuma shigar da fakitin nginx kamar haka.

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

Ƙirƙiri fayil mai suna /etc/yum.repos.d/nginx.repo kuma liƙa ɗaya daga cikin saitunan da ke ƙasa.

[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

Lura: Saboda bambance-bambancen da ke tsakanin yadda CentOS da RHEL, ya zama dole a maye gurbin $eleasever tare da ko dai 6 (na 6.x) ko 7 (na 7.x), dangane da sigar OS ku.

Na gaba, ƙara maɓallin sa hannu na ma'adanar kuma shigar da fakitin nginx kamar yadda aka nuna.

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

Bayan shigar da Nginx cikin nasara, fara shi, kunna shi don farawa ta atomatik a boot ɗin tsarin kuma duba idan yana aiki kuma yana gudana.

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

Idan kuna gudanar da tsarin Tacewar zaɓi, kuna buƙatar buɗe tashar jiragen ruwa 80 (HTTP), 443 (HTTPS) da 5000 (Node app), waɗanda uwar garken gidan yanar gizon ke sauraron buƙatun haɗin gwiwar abokin ciniki.

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

Mataki 4: Sanya Nginx azaman Wakilin Baya Don Aikace-aikacen Nodejs

Yanzu ƙirƙiri fayil ɗin daidaitawar uwar garken toshe don Node app ɗin ku a ƙarƙashin /etc/nginx/conf.d/ kamar yadda aka nuna.

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

Kwafi da liƙa wannan tsari mai zuwa (canza 192.168.43.31 tare da IP uwar garken ku da tecmint.lan tare da sunan yankin ku).

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

Ajiye canje-canje kuma fita fayil.

A ƙarshe, sake kunna sabis na Nginx don aiwatar da canje-canjen kwanan nan.

$ sudo systemctl restart nginx
OR
# systemctl restart nginx

Mataki 5: Samun damar Nodejs Aikace-aikacen ta Mai Binciken Yanar Gizo

Yanzu ya kamata ku sami damar shiga app ɗin ku na Node ba tare da samar da tashar jiragen ruwa da yake sauraro ba, a cikin URL: wannan hanya ce mai dacewa ga masu amfani don samun damar ta.

http://sysmon.tecmint.lan 

Don sunan yankin gwajin ku ya yi aiki, kuna buƙatar saita DNS na gida ta amfani da fayil ɗin /etc/hosts, buɗe shi kuma ƙara layin da ke ƙasa a ciki (tuna canza 192.168.43.31 tare da IP uwar garken ku da tecmint.lan tare da sunan ku na doamin). kamar yadda ya gabata).

192.168.43.31 sysmon.tecmint.lan

Shi ke nan! A cikin wannan labarin, mun nuna yadda ake saita Nginx azaman wakili na baya don aikace-aikacen Nodejs. Yi amfani da fom ɗin amsa da ke ƙasa don yin kowace tambaya ko raba ra'ayoyinku game da wannan labarin.