Nginx |
Ternyata oh ternyata, jangan khawatir, ngga usah diapalin, dipahami aja fungsi-fungsi dari masing-masing bagian,. Untuk confignya ga usah di buat pusing. Mozilla sudah berbaik hati membuatkan generator config. Ngga cuma nginx, tapi ada beberapa config lain seperti apache, haproxy, redis, traefik dan masih banyak lagi. bisa di cek disini.
Seperti biasa, first thing first, untuk environment yang saya gunakan adalah sebagai berikut :
OS : Ubuntu Server 18.04 LTS
Nginx : 1.17.10
Dan berikut adalah beberapa cheat sheet config Nginx yang sudah saya pelajari dan saya gunakan selama bekerja dengan nginxSetup SSL Nginx
Untuk meningkatkan kualitas dan keamanan dari web, kita bisa memasang sertifikat SSL, berikut adalah config minimal untuk memasang sertifikat SSL di Nginx
server { listen 443 ssl http2; # by default, its used 443 listen [::]:443 ssl http2; # by default, its used 443 # ..... server_name your.domain.here; ssl_certificate /path/to/your/certificate.crt; ssl_certificate_key /path/to/your/privkey.pem; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; # about 40000 sessions # intermediate configuration ssl_protocols TLSv1.2 TLSv1.3; # adjust your protocol here ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; # ..... }
Force atau Redirect http ke https
Ada saat dimana kita perlu untuk mengamankan situs dan user dengan cara mengaktifkan fiture enkripsi atau https di web
# http section server { listen 80; listen [::]:80; # just put the return command here return 301 https://$host$request_uri; } # https section server { listen 443 ssl http2; listen [::]:443 ssl http2; #..... # put resource rule and path and ssl here config here #..... }
Setup Default Config Vhost
dan sebagai catatan, apabila kita menggunakan satu server untuk beberapa resource web, maka hanya ada satu file config yang berisi default_server untuk tiap instance nginx
server {
listen 80 default_server;
listen [::]:80 default_server;
# .....
}
Proxy External Public Resource ke Web
Misalnya kita akan menempatkan path tertentu, namun konten dari path tersebut diambil dari external page atau resource. Contohnya page tersebut memiliki folder assets, agar page dapat tampil sempurna di web kita confignya adalah sebagai berikut
server {
# .....
location /assets/ { # put the path and make sure last slash included
proxy_pass https://external.domain.here/assets;
}
# .....
}
Load balance atau proxy resource
Misalnya dari gateway ke server-server backend, atau dari dari host ke container
server {
# .....
location / {
proxy_pass https://your.domain.here; # put upstream domain here
}
# .....
}
upstream your.domain.here { # customize domain name
server 172.10.0.2:443; # container/backend server IP address
}
Redirect Request apapun ke Halaman tertentu
Semisal kita ingin request-request apapun yang ditujukan ke www.bukananakit.com (/about atau /contact dan path-path lain) di arahkan ke homepage bukananakit.com
server {
# .....
rewrite ^ https://bukananakit.com # put the target here
# .....
}
Redirect dan Menimpa Domain tanpa Mengubah URL Path
Semisal URL lama http://www.bukananakit.com/resource/web kemudian ingin di redirect ke URL baru menjadi http://bukananakit.com/resource/web, atau apapun yang diawali dari www. namun ingin me-redirect ke domain yang tidak memiliki www, dan tanpa mengubah path url
server {
# .....
rewrite ^ https://bukananakit.com$request_uri; # put the target here
# .....
}
Mengubah Path URL
Semisal URL lama http://www.bukananakit.com/resource/web kemudian ingin diubah menjadi http://www.bukananakit.com/baru/resource/web tanpa ingin mengubah apapun yang ada di dalam code
server { # .....Semoga bermanfaat. Jika ada pertanyaan silahkan tinggalkan komentar atau bisa chat via telegram.location = /resource/web { return 301 /baru
# ..... }
/resource/web
; # put the new path here }
Referensi :
No comments:
Post a Comment