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.