Cara Mengonfigurasi Nginx sebagai Reverse Proxy untuk Aplikasi Nodejs
Nodejs adalah kerangka kerja JavaScript sumber terbuka gratis, ringan, skalabel, dan efisien yang dibangun di mesin JavaScript V8 Chrome, dan menggunakan model I/O non-pemblokiran yang digerakkan oleh peristiwa. Nodejs kini ada di mana-mana, dan menjadi sangat populer untuk mengembangkan perangkat lunak mulai dari situs web, aplikasi web hingga aplikasi jaringan, dan banyak lagi.
Nginx adalah server HTTP sumber terbuka dan berkinerja tinggi, penyeimbang beban, dan perangkat lunak proksi terbalik. Ini memiliki bahasa konfigurasi yang sederhana sehingga mudah untuk dikonfigurasi. Pada artikel ini, kami akan menunjukkan cara mengkonfigurasi Nginx sebagai reverse proxy untuk aplikasi Nodejs.
Baca Juga: Panduan Utama untuk Mengamankan, Memperkuat, dan Meningkatkan Kinerja Server Web Nginx
Catatan: Jika sistem Anda sudah berjalan dengan Nodejs dan NPM, dan aplikasi Anda berjalan pada port tertentu , langsung ke Langkah 4.
Langkah 1: Menginstal Nodejs dan NPM di Linux
Versi terbaru Node.js dan NPM tersedia untuk diinstal dari repositori resmi distribusi biner NodeSource Enterprise Linux, Fedora, Debian, dan Ubuntu, yang dikelola oleh situs web Nodejs dan Anda perlu menambahkannya ke sistem Anda agar dapat menginstal paket Nodejs dan NPM terbaru seperti yang ditunjukkan.
Di Debian/Ubuntu
---------- 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
Di CentOS/RHEL dan Fedora
---------- 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 -
Langkah 2: Membuat Aplikasi Nodejs
Untuk tujuan demonstrasi, kita akan membuat contoh aplikasi bernama “sysmon”, yang akan berjalan pada port 5000 seperti yang ditunjukkan.
sudo mkdir -p /var/www/html/sysmon
sudo vim /var/www/html/sysmon/server.js
Copy dan paste kode berikut pada file server.js (ganti 192.168.43.31 dengan IP server Anda).
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}/`);
});
Simpan file dan keluar.
Sekarang mulai aplikasi simpul Anda menggunakan perintah berikut (tekan Ctrl+x
untuk menghentikannya).
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
Sekarang buka browser dan akses aplikasi Anda di URL http://198.168.43.31:5000
.
Langkah 3: Instal Nginx Reverse Proxy di Linux
Kami akan menginstal Nginx versi terbaru dari repositori resmi, seperti yang ditunjukkan di bawah ini.
Di Debian/Ubuntu
Buat file bernama /etc/apt/sources.list.d/nginx.list dan tambahkan baris berikut ke dalamnya.
deb http://nginx.org/packages/ubuntu/ bionic nginx
deb-src http://nginx.org/packages/ubuntu/ bionic nginx
Selanjutnya, tambahkan kunci penandatanganan repositori, perbarui indeks paket sistem Anda dan instal paket nginx sebagai berikut.
wget --quiet http://nginx.org/keys/nginx_signing.key && sudo apt-key add nginx_signing.key
sudo apt update
sudo apt install nginx
Di CentOS/RHEL dan Fedora
Buat file bernama /etc/yum.repos.d/nginx.repo dan tempel salah satu konfigurasi di bawah.
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
Catatan: Karena perbedaan antara cara CentOS dan RHEL, $releasever
perlu diganti dengan 6 (untuk 6.x) atau 7 (untuk 7.x), bergantung pada versi OS Anda.
Selanjutnya, tambahkan kunci penandatanganan repositori dan instal paket nginx seperti yang ditunjukkan.
wget --quiet http://nginx.org/keys/nginx_signing.key && rpm --import nginx_signing.key
yum install nginx
Setelah berhasil menginstal Nginx, jalankan, aktifkan untuk memulai otomatis saat boot sistem dan periksa apakah sudah aktif dan berjalan.
---------- 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
Jika Anda menjalankan firewall sistem, Anda perlu membuka port 80 (HTTP), 443 (HTTPS) dan 5000 (Aplikasi Node), yang didengarkan server web untuk permintaan koneksi klien.
---------- 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
Langkah 4: Konfigurasikan Nginx sebagai Reverse Proxy Untuk Aplikasi Nodejs
Sekarang buat file konfigurasi blok server untuk aplikasi Node Anda di bawah /etc/nginx/conf.d/ seperti yang ditunjukkan.
sudo vim /etc/nginx/conf.d/sysmon.conf
Salin dan tempel konfigurasi berikut (ubah 192.168.43.31 dengan IP server Anda dan tecmint.lan dengan nama domain Anda).
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;
}
}
Simpan perubahan dan keluar dari file.
Terakhir, restart layanan Nginx untuk menerapkan perubahan terkini.
sudo systemctl restart nginx
OR
systemctl restart nginx
Langkah 5: Akses Aplikasi Nodejs melalui Browser Web
Sekarang Anda seharusnya dapat mengakses aplikasi Node Anda tanpa menyediakan port yang digunakan untuk mendengarkannya, di URL: ini adalah cara yang lebih nyaman bagi pengguna untuk mengaksesnya.
http://sysmon.tecmint.lan
Agar nama domain pengujian Anda berfungsi, Anda perlu menyiapkan DNS lokal menggunakan file /etc/hosts, buka dan tambahkan baris di bawah ini ke dalamnya (ingat untuk mengubah 192.168.43.31 dengan IP server Anda dan tecmint.lan dengan nama doamin Anda seperti sebelumnya).
192.168.43.31 sysmon.tecmint.lan
Itu saja! Pada artikel ini, kami menunjukkan cara mengkonfigurasi Nginx sebagai reverse proxy untuk aplikasi Nodejs. Gunakan formulir umpan balik di bawah untuk mengajukan pertanyaan atau menyampaikan pendapat Anda tentang artikel ini.