ວິທີການຕັ້ງຄ່າ Nginx ເປັນໂປແກຼມ Reverse Proxy ສຳ ລັບ Nodejs App
Nodejs ແມ່ນໂປແກຼມ Javascript ທີ່ເປີດໃຫ້ໃຊ້ງານຟຣີ, ມີນ້ ຳ ໜັກ ເບົາ, ສາມາດປັບຂະ ໜາດ ໄດ້ແລະມີປະສິດຕິພາບທີ່ສ້າງຂື້ນໃນເຄື່ອງຈັກ V8 JavaScript ຂອງ Chrome, ແລະໃຊ້ຮູບແບບ I/O ທີ່ໃຊ້ງານ, ບໍ່ໄດ້ປິດກັ້ນ. Nodejs ປະຈຸບັນຢູ່ທົ່ວທຸກແຫ່ງ, ແລະໄດ້ຮັບຄວາມນິຍົມຫຼາຍໃນການພັດທະນາຊອບແວຈາກເວບໄຊທ໌, ແອັບ web ເວັບຈົນເຖິງແອັບ to ເຄືອຂ່າຍແລະອື່ນໆ.
Nginx ແມ່ນແຫຼ່ງເປີດ, ເຄື່ອງແມ່ຂ່າຍ HTTP ທີ່ມີປະສິດຕິພາບສູງ, ມີຄວາມສົມດຸນໃນການໂຫຼດແລະໂປແກຼມໂປແກຼມຕົວແທນ. ມັນມີພາສາການຕັ້ງຄ່າທີ່ກົງໄປກົງມາເຮັດໃຫ້ງ່າຍຕໍ່ການຕັ້ງຄ່າ. ໃນບົດຂຽນນີ້, ພວກເຮົາຈະສະແດງວິທີການຕັ້ງຄ່າ Nginx ເປັນຕົວແທນດ້ານຫລັງ ສຳ ລັບການ ນຳ ໃຊ້ Nodejs.
ໝາຍ ເຫດ: ຖ້າລະບົບຂອງທ່ານເຮັດວຽກກັບ Nodejs ແລະ NPM ແລ້ວ, ແລະໃຫ້ແອັບ your ຂອງທ່ານແລ່ນຢູ່ທ່າເຮືອໃດ ໜຶ່ງ, ໃຫ້ໄປທີ່ຂັ້ນຕອນທີ 4.
ຂັ້ນຕອນທີ 1: ການຕິດຕັ້ງ Nodejs ແລະ NPM ໃນ Linux
Node.js ແລະ NPM ລຸ້ນລ້າສຸດແມ່ນມີການຕິດຕັ້ງຈາກຫ້ອງການແຈກຈ່າຍ ຈຳ ຫນ່າຍຖານຂໍ້ມູນ NodeSource Enterprise Linux, Fedora, Debian ແລະ Ubuntu ເຊິ່ງຖືກຮັກສາໄວ້ໂດຍເວັບໄຊທ໌ Nodejs ແລະທ່ານຈະຕ້ອງເພີ່ມມັນເຂົ້າໃນລະບົບຂອງທ່ານເພື່ອໃຫ້ສາມາດ ຕິດຕັ້ງຊຸດ Nodejs ແລະ NPM ລ້າສຸດຕາມທີ່ສະແດງ.
---------- 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 -
ຂັ້ນຕອນທີ 2: ການສ້າງ Nodejs Application
ສຳ ລັບຈຸດປະສົງການສາທິດ, ພວກເຮົາຈະສ້າງໂປແກຼມ ນຳ ໃຊ້ຕົວຢ່າງ ໜຶ່ງ ທີ່ມີຊື່ວ່າ "sysmon", ເຊິ່ງຈະໃຊ້ໃນພອດ 5000 ດັ່ງທີ່ສະແດງ.
$ sudo mkdir -p /var/www/html/sysmon $ sudo vim /var/www/html/sysmon/server.js
ຄັດລອກແລະວາງລະຫັດຕໍ່ໄປນີ້ໃນແຟ້ມ server.js (ທົດແທນ 192.168.43.31 ກັບ IP server ຂອງທ່ານ).
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}/`); });
ບັນທຶກເອກະສານແລະອອກ.
ຕອນນີ້ເລີ່ມຕົ້ນໃຊ້ໂປແກຼມ node ຂອງທ່ານໂດຍໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້ (ກົດ 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
ຕອນນີ້ເປີດໂປແກຼມທ່ອງເວັບແລະເຂົ້າໃຊ້ໃບສະ ໝັກ ຂອງທ່ານທີ່ URL <198.168.43.31:5000 .
ຂັ້ນຕອນທີ 3: ຕິດຕັ້ງ Nginx Reverse Proxy ໃນ Linux
ພວກເຮົາຈະຕິດຕັ້ງ Nginx ລຸ້ນລ້າສຸດຈາກຫໍສະຫມຸດຢ່າງເປັນທາງການ, ດັ່ງທີ່ສະແດງຢູ່ຂ້າງລຸ່ມ.
ສ້າງແຟ້ມເອກະສານທີ່ມີຊື່ວ່າ /etc/apt/sources.list.d/nginx.list ແລະຕື່ມສາຍຕໍ່ໄປນີ້ໃສ່ມັນ.
deb http://nginx.org/packages/ubuntu/ bionic nginx deb-src http://nginx.org/packages/ubuntu/ bionic nginx
ຕໍ່ໄປ, ຕື່ມລະຫັດເຊັນໃບເກັບຮັກສາ, ປັບປຸງດັດສະນີຊຸດລະບົບຂອງທ່ານແລະຕິດຕັ້ງຊຸດ nginx ດັ່ງຕໍ່ໄປນີ້.
$ wget --quiet http://nginx.org/keys/nginx_signing.key && sudo apt-key add nginx_signing.key $ sudo apt update $ sudo apt install nginx
ສ້າງແຟ້ມເອກະສານທີ່ມີຊື່ວ່າ /etc/yum.repos.d/nginx.repo ແລະວາງ ໜຶ່ງ ໃນການຕັ້ງຄ່າຂ້າງລຸ່ມນີ້.
[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
ໝາຍ ເຫດ: ເນື່ອງຈາກຄວາມແຕກຕ່າງລະຫວ່າງ CentOS ແລະ RHEL, ມັນ ຈຳ ເປັນຕ້ອງປ່ຽນແທນ $ລຸ້ນປ່ອຍ
ໂດຍທັງ 6 (ສຳ ລັບ 6.x) ຫຼື 7 (ສຳ ລັບ 7.x), ຂື້ນກັບລຸ້ນ OS ຂອງທ່ານ.
ຕໍ່ໄປ, ຕື່ມລະຫັດເຊັນໃບເກັບຮັກສາແລະຕິດຕັ້ງ nginx package ດັ່ງທີ່ສະແດງໄວ້.
# wget --quiet http://nginx.org/keys/nginx_signing.key && rpm --import nginx_signing.key # yum install nginx
ຫຼັງຈາກການຕິດຕັ້ງ Nginx ປະສົບຜົນ ສຳ ເລັດ, ເລີ່ມຕົ້ນມັນ, ເຮັດໃຫ້ມັນສາມາດເລີ່ມຕົ້ນໂດຍອັດຕະໂນມັດໃນເວລາທີ່ boot system ແລະກວດເບິ່ງວ່າມັນ ກຳ ລັງແລ່ນຢູ່ຫລືບໍ່.
---------- 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
ຖ້າທ່ານ ກຳ ລັງໃຊ້ firewall ຂອງລະບົບ, ທ່ານ ຈຳ ເປັນຕ້ອງເປີດ port 80 (HTTP), 443 (HTTPS) ແລະ 5000 (app Node), ເຊິ່ງ web server ໄດ້ຟັງ ສຳ ລັບ ຄຳ ຂໍການເຊື່ອມຕໍ່ຂອງລູກຄ້າ.
---------- 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: ຕັ້ງຄ່າ Nginx ເປັນໂປແກຼມ Reverse Proxy ສຳ ລັບ Nodejs Application
ຕອນນີ້ສ້າງເອກະສານການຕັ້ງຄ່າບລັອກເຊີຟເວີ ສຳ ລັບແອັບ Node ຂອງທ່ານຢູ່ພາຍໃຕ້ /etc/nginx/conf.d/ ດັ່ງທີ່ສະແດງ.
$ sudo vim /etc/nginx/conf.d/sysmon.conf
ຄັດລອກແລະວາງການຕັ້ງຄ່າຕໍ່ໄປນີ້ (ປ່ຽນ 192.168.43.31 ກັບ IP ຂອງເຄື່ອງແມ່ຂ່າຍຂອງທ່ານແລະ tecmint.lan ກັບຊື່ໂດເມນຂອງທ່ານ).
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; } }
ບັນທຶກການປ່ຽນແປງແລະອອກຈາກແຟ້ມ.
ສຸດທ້າຍ, ເລີ່ມການບໍລິການ Nginx ເພື່ອສົ່ງຜົນຕໍ່ການປ່ຽນແປງທີ່ຜ່ານມາ.
$ sudo systemctl restart nginx OR # systemctl restart nginx
ຂັ້ນຕອນທີ 5: ເຂົ້າໃຊ້ Nodejs Application ຜ່ານ Web Browser
ຕອນນີ້ທ່ານຄວນຈະສາມາດເຂົ້າເຖິງແອັບode Node ຂອງທ່ານໂດຍບໍ່ຕ້ອງໃຫ້ພອດທີ່ມັນ ກຳ ລັງຟັງຢູ່ໃນ URL: ນີ້ແມ່ນວິທີທີ່ສະດວກ ສຳ ລັບຜູ້ໃຊ້ສາມາດເຂົ້າເຖິງມັນ.
http://sysmon.tecmint.lan
ເພື່ອໃຫ້ຊື່ໂດເມນທົດສອບຂອງທ່ານເຮັດວຽກ, ທ່ານ ຈຳ ເປັນຕ້ອງຕັ້ງ DNS ທ້ອງຖິ່ນໂດຍໃຊ້ເອກະສານ/etc/hosts, ເປີດມັນແລະເພີ່ມສາຍຢູ່ທາງລຸ່ມໃນມັນ (ຈື່ວ່າຈະປ່ຽນ 192.168.43.31 ກັບ IP server ຂອງທ່ານແລະ tecmint.lan ກັບຊື່ doamin ຂອງທ່ານ ຄືແຕ່ກ່ອນ).
192.168.43.31 sysmon.tecmint.lan
ຫມົດເທົ່ານີ້! ໃນບົດຂຽນນີ້, ພວກເຮົາໄດ້ສະແດງວິທີການຕັ້ງຄ່າ Nginx ເປັນຕົວແທນດ້ານຫລັງ ສຳ ລັບການ ນຳ ໃຊ້ Nodejs. ໃຊ້ແບບຟອມການ ຕຳ ນິຕິຊົມຂ້າງລຸ່ມນີ້ເພື່ອຖາມ ຄຳ ຖາມໃດໆຫຼືແບ່ງປັນຄວາມຄິດຂອງທ່ານກ່ຽວກັບບົດຂຽນນີ້.