Dewacloud menyediakan berbagai macam load balancer untuk digunakan di topologinya seperti NGINX, Apache, HAProxy, Litespeed Web ADC, dan Varnish. Di artikel kali ini kita akan membahas cara konfigurasi load balancer NGINX agar dapat menyesuaikan dengan kebutuhan aplikasi kita. Yuk simak sampai habis!
Baca juga: Pengenalan Fitur dan Interface Dewacloud
Dimana Kita Bisa Mengubah Konfigurasi NGINX?
Kita asumsikan kamu sudah punya environment dengan Load Balancer NGINX. Jika environment dengan Load Balancer sudah ada, cari environment tersebut di dashboard Dewacloud.
Klik tombol dropdown pada environmentmu lalu klik tombol tang/config pada Load Balancernya.
Masuk ke directory nginx lalu buka file “nginx-jelastic.conf”.
Tampilannya akan kurang lebih seperti ini.
Konfigurasi NGINX
Apa saja sih yang bisa dikonfigurasi di file nginx-jelastic.conf itu? Mari kita bahas beberapa settingnya disini:
1. Upstream
Kamu bisa setting server upstream dengan di-define seperti berikut:
upstream test {
server test1.example.com
server test2.example.com
server 127.0.0.1:8000
}
Kamu juga bisa tambahkan parameter-parameter lain seperti weight, max_fails, fail_timeout, dan lainnya.
upstream test {
server test1.example.com weight=5;
server test2.example.com fail_timeout=5s;
server 127.0.0.1:8000 max_fails=3
server backup.example.com backup;
}
Baca juga: Cara Konfigurasi Nginx Proxy Pass di Dewacloud
2. Security Headers
Kamu dapat menambahkan security headers untuk meningkatkan pertahanan aplikasi webmu terhadap berbagai serangan. Mari kita lihat beberapa contohnya:
a. X-Frame-Options
Header X-Frame-Options berguna untuk mencegah “clickjacking”.
Contoh:
add_header X-Frame-Options "SAMEORIGIN";
b. X-Content-Type-Options
Header X-Content-Type-Options berguna untuk mencegah MIME sniffing/Content sniffing.
Contoh:
add_header X-Content-Type-Options "nosniff";
c. X-XSS-Protection
Mengaktifkan filter Cross-site scripting (XSS) pada browser untuk mencegah attack XSS.
Contoh:
add_header X-XSS-Protection "1; mode=block";
d. Content-Security-Policy
Header ini dapat mencegah berbagai macam attack dengan menspesifikasikan resource yang dapat diload. Directivenya ada berbagai macam untuk mengontrol sourcenya seperti default-src,script-src, style-src, dan lainnya.
Contoh:
add_header Content-Security-Policy "default-src 'self'; script-src 'self' https://apis.google.com";
e. Strict-Transport-Security (HSTS)
Header ini memaksa browser untuk menggunakan koneksi HTTPS.
Directivenya sebagai berikut:
‘max_age’ : Mengatur berapa lama browser harus mengakses website dengan HTTPS (dalam detik).
‘includeSubDomains’ : Menerapkan rule ini ke subdomain juga.
‘preload’ : Menambahkan domain ke list preload HSTS browser.
Contoh:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
f. Referrer-Policy
Mengontrol berapa banyak referrer information dikirim saat pengguna membuka website.
Contoh:
add_header Referrer-Policy "no-referrer";
Contoh Implementasi
# Security headers
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
add_header X-XSS-Protection "1; mode=block";
add_header Content-Security-Policy "default-src 'self';
script-src 'self' https://apis.google.com";
add_header Strict-Transport-Security "max-age=31536000;
includeSubDomains;
preload";
add_header Referrer-Policy "no-referrer";
3. SSL
Kamu juga bisa konfigurasi SSL dari load balancer NGINX dengan menambahkan script berikut pada block server:
server {
listen 443 ssl;
server_name namadomain.com;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;
Note: sesuaikan path certificate dan private keynya
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Verifikasi
Jika sudah selesai mengedit, klik save untuk menerapkan perubahan pada filenya.
Setelah itu, restart node Load Balancer.
Untuk testing dan verifikasi konfigurasinya kamu bisa cek di lognya dan konfirmasi bahwa tidak ada error yang terjadi.
Untuk mengecek error lognya kamu bisa klik Log di Load Balancer. Kemudian, masuk ke directory ‘nginx’ lalu buka file error.log untuk melihat log errornya
Kesimpulan
Bagaimana, apakah kamu sudah mendapat gambaran tentang cara menambahkan konfigurasi custom NGINX di Dewacloud? Kami harap artikel ini dapat membantumu dalam pengembangan aplikasi webmu kedepannya. Kalau kamu masih bingung, silakan chat Ninja Support kami yang selalu sedia melayanimu 24/7 untuk bantuan!