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.