Lindungi situs dengan password pada Nginx
Pada web server berbasis Apache kita dapat dengan mudah membatasi akses ke URL atau tempat tertentu dengan sistem user dan password. Sebenarnya di Nginx pun bisa, tapi ada beberapa langkah dulu untuk mengintegrasikannya.
Jenis pengamanan seperti ini disebut HTTP Basic Authentication, dan ini merupakan fitur dari Apache sebenarnya, tapi bisa diadaptasikan ke Nginx. Tidak perlu menginstall Apache secara penuh, cuma alatnya saja sudah cukup:
Kemudian kita buat file passwordnya dengan username nama_saya:
htpasswd -c /etc/nginx/.htpasswd nama_saya
Adding password for nama_saya.
New password:
Re-type new password:
Selanjutnya tambahkan pada kode konfigurasi virtual host Nginx untuk websitenya, tepatnya untuk tempat yang ingin diproteksi dengan login:
location /wp-login.php {
auth_basic "WordPress - Nginx Basic Auth";
auth_basic_user_file "/etc/nginx/.htpasswd";
}
Saya misalkan untuk halaman login WordPress.
Setelah itu restart Nginx:
service nginx reload
Dan nanti saat anda membuka link yang dilindungi akan muncul jendela popup meminta nama user dan kata sandinya untuk melanjutkan. Ini lebih hemat resource karena diproses web server dibaningkan oleh PHP-FPM, juga keamanannya ganda.