1. Pengertian NGINX
2. Install NGINX
3. Install Aplikasi Web NodeJS (Express)
4. Penerapan Reserve Proxy
5. Penerapan Request Rate Limit
Apa itu Nginx?
Seperti penjelasan di atas, Nginx adalah web server berbasis open source yang memiliki keunggulan untuk membuat performa website kamu terlihat lebih canggih dan powerful. Salah satu kelebihan Nginx adalah mudah terkonfigurasi.
Nginx adalah web server yang pertama kali dirilis pada bulan Oktober 2004 oleh pria berkewarganegaraan Rusia, Igor Sysoev. Mulanya, fungsi Nginx adalah sebagai HTTP web serving saja.
Install NGINX di Linux
Saya akan menggunakan perintah di bawah ini, dengan penerapan menggunakan Ubuntu 22.04 LTS
sudo apt-get update
sudo apt-get install nginx -y
Install Aplikasi Web NodeJS (Express)
Bikin direktori terlebih dahulu, dan selanjutnya install node_module di dalamnya
sudo su -
mkdir radenfebri
cd radenfebri
Gunakan npm initperintah untuk membuat package.jsonfile untuk aplikasi Anda. Untuk informasi selengkapnya tentang cara package.jsonkerjanya, lihat Spesifik penanganan package.json npm.
npm init
Perintah ini meminta Anda untuk beberapa hal, seperti nama dan versi aplikasi Anda. Untuk saat ini, Anda cukup menekan RETURN untuk menerima default untuk sebagian besar dari mereka, dengan pengecualian berikut:
entry point: (index.js)
Enter app.js, atau apa pun yang Anda inginkan untuk nama file utama. Jika Anda menginginkannya index.js, tekan RETURN untuk menerima nama file default yang disarankan.
Sekarang instal Express di myappdirektori dan simpan di daftar dependensi. Sebagai contoh:
npm install express
Untuk menginstal Express sementara dan tidak menambahkannya ke daftar dependensi:
npm install express --no-save
Untuk mencoba membuat web nya silahkan membuat file dengan perintah di bawah:
touch app.js
Pada tutorial ini saya menjalankan aplikasi web Express ini menggunakan port 8000, kalian bisa edit di bagian app.js, Edit di dalamnya seperti dokumentasi di bawah ini:
const express = require('express')
const app = express()
const port = 8000
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.listen(port, () => {
console.log(`Example app listening on port ${port}`)
})
Langkah selanjutnya jalankan aplikasiny dengan cara ketikkan perintah di bawah:
node app.js
Penerapan Reserve Proxy
Masuk ke direktori /etc/nginx/sites-available/default dan kemudian konfigurasi, nantinya aplikasi akan di akses melalui port 3000 dan port 3000 ini akan memanggil atau di reverse ke port 8000 yang ada pada localhost. Kurang lebihnya konfigurasi seperti di bawah ini:
sudo nano /etc/nginx/sites-available/default
server {
listen 3000 default_server;
listen [::]:3000 default_server;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;SS
location / {
proxy_pass http://localhost:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
sudo service nginx restart
Penerapan Request Rate Limit
Rate Limit pada NGINX ini bisa digunakan untuk mengamankan sebuah web server agar si pengakses atau si penyerang website kita agar tidak terus-menerus mereka merequest packet dan jug digunakan untuk mengamankan bandwidth file pada webserver.
Masuk ke direktori /etc/nginx/sites-available/default
sudo nano /etc/nginx/sites-available/default
Tambahkan perintah di bawah ini:
limit_req_zone $binary_remote_addr zone=one:1m rate=6r/m;
Tambahkan perintah di bawah ini:
limit_req zone=one;
Full Code :
limit_req_zone $binary_remote_addr zone=one:1m rate=6r/m;
server {
listen 3000 default_server;
listen [::]:3000 default_server;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;SS
location / {
proxy_pass http://localhost:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
limit_req zone=one;
}
}
Lakukan Restart pada webserver NGINX agar bisa diterapkan Rate Limit dan berjalan normal kembali
sudo service nginx restart
Top comments (0)