Blokir akses website lewat IP di Nginx
Yup, ternyata solusi saya sebelumnya itu salah kaprah. Kasusnya masih berhubungan, dimana salah satu website yang dihosting dalam Nginx bisa diakses kontennya kalau lewat alamat IP VPSnya. Masalahnya hal ini diindeks oleh Google. Yang saya bahas sebelumnya adalah mengalihkan pengunjung yang membuka lewat IP ke URL situsnya, dan aslinya bisa dikatakan cukup.
Tapi karena saya tidak ingin alamat IPnya diketahui umum dan ini pakai CloudFlare maka bisa dikatakan tidaklah ideal. Akhirnya saya putuskan agar memblokir saja seluruh usaha akses ke situsnya apabila datangnya melalui alamat IP. Jadi seakan – akan tidak ada yang dihosting didalamnya.
Oke, kita perlu mengedit nginx.conf dan tambahkan kode berikut dalam blok http{}
. Tapi ingat, ini letaknya diatas konfigurasi virtual host Nginx, karena akan diproses secara berurutan.
server {
return 444;
}
Pas saya coba kode diatas cuma ampuh pada koneksi HTTP.
Jadinya saya cari solusi serupa tapi untuk HTTPS, dan ini yang saya dapatkan. Lokasinya saya tempatkan dibawah kode diatas.
server {
listen 443 ssl default_server;
server_name _;
return 444;
}
Solusi alternatif tapi metodenya tetap sama, kalau yang ini malah diposisikan setelah konfigurasi virtual hosting.
server {
listen 80;
listen 443;
server_name 192.168.1.233;
return 444;
}
Ini berlaku untuk HTTP dan HTTPS, bedanya langsung ditentukan setiap request ke alamat IP server akan ditutup. Silahkan dicoba yang ini kalau yang sebelumnya bermasalah.
Jangan lupa restart Nginx agar setting barunya diterapkan. Dan saya jelaskan bahwa kode 444
ini unik milik Nginx yang artinya koneksi ditutup tanpa respon. Kalau 404
maksudnya konten tidak ditemukan, jadi beda fungsinya.