Membatasi Akses Direktori di Nginx dengan HTTP Basic Authentication

Membatasi Akses Direktori di Nginx dengan HTTP Basic Authentication.  Kalian bisa menambahkan autentifikasi pada direktori pada webserver Nginx. Untuk melakukannya, kita membutuhkan tool apache2-utils.

Contoh hasil akhir dari tutorial ini:

Persiapan
Pastikan di sistem kalian sudah terinstall apache2-utils (Debian, Ubuntu) atau  httpd-tools (RHEL/CentOS/Oracle Linux).

Untuk file htpasswd kalian bisa mau disimpan dimana, namun untuk merapikan struktur direktori, biasanya saya simpan di direktori Nginx. Sebagai contoh disini file htpasswd saya simpan di direktori web-auth.
sudo mkdir /etc/nginx/web-auth
sudo htpasswd -c /etc/nginx/web-auth/.htpasswd linuxsec

.htpasswd adalah nama file htpasswd yang akan dibuat. Kalian bebas menggunakan nama apapun. linuxsec adalah username yang akan digunakan. Saat menjalankan command diatas kalian akan diminta password. Password tersebut yang akan digunakan untuk autentifikasi.

Sebagai contoh, disini saya akan menambahkan htpasswd tersebut untuk melindungi folder autentifikasi. Edit serverblock kalian, lalu tambahkan baris berikut
location /autentifikasi {
    auth_basic           "Login Area";
    auth_basic_user_file /etc/nginx/web-auth/.htpasswd;
}
Selanjutnya restart Nginx dengan perintah
sudo service nginx reload
Selanjutnya tinggal akses lewat browser dan login menggunakan username serta password yang sudah dibuat.

Tanpa Menggunakan Htpasswd dari Apache
Atau sebenarnya tanpa menggunakan htpasswd kalian juga bisa membuat autentifikasi menggunakan fitur passwd pada openssl.
printf "linuxsec:$(openssl passwd -apr1)\n" | sudo tee /etc/nginx/web-auth/.htpasswd
linuxsec adalah usernamenya, dan .htpasswd adalah file nya. Untuk implementasinya di konfigurasi Nginx sama saja.

Oke sekian tutorial kali ini, semoga bermanfaat. Jika ada yang ingin ditanyakan silahkan tinggalkan komentar.