Weboldal keresés

Az Nginx konfigurálása fordított proxyként a Nodejs App számára


A Nodejs egy ingyenes, nyílt forráskódú, könnyű, méretezhető és hatékony JavaScript-keretrendszer, amely a Chrome V8 JavaScript-motorjára épül, és eseményvezérelt, nem blokkoló I/O-modellt használ. A Nodejs ma már mindenhol megtalálható, és olyan népszerűvé vált a szoftverek fejlesztése terén a webhelyektől, webalkalmazásoktól a hálózati alkalmazásokig és egyebekig.

Az Nginx egy nyílt forráskódú, nagy teljesítményű HTTP-kiszolgáló, terheléselosztó és fordított proxyszoftver. Egyszerű konfigurációs nyelve van, ami megkönnyíti a konfigurálást. Ebben a cikkben bemutatjuk, hogyan konfigurálható az Nginx fordított proxyként a Nodejs alkalmazásokhoz.

Olvassa el még: Végső útmutató az Nginx webszerver biztonságosabbá tételéhez, megerősítéséhez és teljesítményének javításához

Megjegyzés: Ha a rendszere már fut Nodejs és NPM, és az alkalmazás egy bizonyos porton fut , lépjen közvetlenül a 4. lépésre.

1. lépés: A Nodejs és az NPM telepítése Linux alatt

A Node.js és az NPM legújabb verziója telepíthető a hivatalos NodeSource Enterprise Linux, Fedora, Debian és Ubuntu bináris disztribúciók tárolójából, amelyet a Nodejs webhely tart fenn. és hozzá kell adnia a rendszeréhez, hogy telepíteni tudja a legújabb Nodejs és NPM csomagokat az ábra szerint.

Debian/Ubuntu alatt

---------- 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 és Fedora rendszeren

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

2. lépés: Nodejs alkalmazás létrehozása

Demonstrációs célból létrehozunk egy "sysmon" nevű mintaalkalmazást, amely az 5000-es porton fog futni, ahogy az ábra mutatja.

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

Másolja ki és illessze be a következő kódot a server.js fájlba (cserélje ki a 192.168.43.31 kódot a szerver IP-címére).

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

Mentse el a fájlt és lépjen ki.

Most indítsa el a csomópont-alkalmazást a következő paranccsal (a Ctrl+x lenyomásával fejezze be).

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

Most nyissa meg a böngészőt, és nyissa meg az alkalmazást a http://198.168.43.31:5000 URL-címen.

3. lépés: Telepítse az Nginx Reverse Proxyt Linuxon

Az alább látható módon telepítjük az Nginx legújabb verzióját a hivatalos adattárból.

Debian/Ubuntu alatt

Hozzon létre egy /etc/apt/sources.list.d/nginx.list nevű fájlt, és adja hozzá a következő sorokat.

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

Ezután adja hozzá a lerakat-aláíró kulcsot, frissítse a rendszercsomag indexét, és telepítse az nginx csomagot az alábbiak szerint.

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 és Fedora rendszeren

Hozzon létre egy /etc/yum.repos.d/nginx.repo nevű fájlt, és illessze be az alábbi konfigurációk egyikét.

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

Megjegyzés: A CentOS és az RHEL közötti különbségek miatt a $releasever kifejezést 6-ra kell cserélni. (6.x esetén) vagy 7 (7.x esetén), az operációs rendszer verziójától függően.

Ezután adja hozzá a lerakat-aláíró kulcsot, és telepítse az nginx csomagot az ábra szerint.

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

Az Nginx sikeres telepítése után indítsa el, engedélyezze az automatikus indítást a rendszerindításkor, és ellenőrizze, hogy működik-e.

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

Ha rendszertűzfalat használ, meg kell nyitnia a 80-as (HTTP), 443-as (HTTPS) és az 5000-es portot (Node alkalmazás), amelyet a webszerver figyel az ügyfélkapcsolati kérésekre.

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

4. lépés: Állítsa be az Nginx-et fordított proxyként a Nodejs alkalmazáshoz

Most hozzon létre egy szerverblokk konfigurációs fájlt a Node alkalmazáshoz az /etc/nginx/conf.d/ alatt, az ábra szerint.

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

Másolja és illessze be a következő konfigurációt (módosítsa a 192.168.43.31 fájlt a szerver IP-címére, és a tecmint.lan fájlt a domain nevére).

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

Mentse el a változtatásokat, és lépjen ki a fájlból.

Végül indítsa újra az Nginx szolgáltatást a legutóbbi módosítások végrehajtásához.

sudo systemctl restart nginx
OR
systemctl restart nginx

5. lépés: Nyissa meg a Nodejs alkalmazást webböngészőn keresztül

Mostantól el kell érnie a Node alkalmazást anélkül, hogy megadná az URL-ben azt a portot, amelyen figyel: ez egy nagyon kényelmes módja annak, hogy a felhasználók hozzáférjenek.

http://sysmon.tecmint.lan 

A teszttartománynév működéséhez be kell állítania a helyi DNS-t az /etc/hosts fájl segítségével, nyissa meg, és adja hozzá az alábbi sort (ne felejtse el módosítani a 192.168.43.31t. a szerver IP-címével és a tecmint.lan domain névvel, mint korábban).

192.168.43.31 sysmon.tecmint.lan

Ez minden! Ebben a cikkben bemutattuk, hogyan konfigurálható az Nginx fordított proxyként a Nodejs alkalmazásokhoz. Az alábbi visszajelzési űrlap segítségével kérdéseket tehet fel, vagy megoszthatja gondolatait ezzel a cikkel kapcsolatban.