Persyaratan: Gunakan nginx untuk memblokir beberapa IP agar tidak mengakses situs web, seperti perayap, iklan, dll. Atau karena alasan kebijakan, Anda perlu memblokir akses dari alamat IP di negara tertentu.
Blokir akses IP yang ditentukan
Nginx menyediakan dua perintah paling dasar untuk menutupi dan mengizinkan IP: tolak untuk memblokir dan mengizinkan untuk mengizinkan, sebagai berikut:
Tentukan direktori untuk memblokir akses dari IP tertentu
Dalam file konfigurasi Nginx, Anda dapat menggunakan blok lokasi untuk mencocokkan jalur URL tertentu. Misalnya, kita ingin mengaktifkan penyamaran di jalur URL yang dimulai dengan /foo, mencocokkan semua jalur URL yang dimulai dengan /foo, seperti /foo/bar dan /foo/baz/qux, dll., sebagai berikut:
Jika kamu mauPencocokan persis /foountuk menggunakan konfigurasi berikut:
Anda juga dapat mencocokkan direktori dengan ekspresi reguler:
Blokir akses ke negara (wilayah) yang ditentukan.
Terkadang kami hanya ingin mengizinkan wilayah tertentu untuk mengakses situs web kami. Mengetahui dua metode di atas, masalah yang tersisa adalah bagaimana mendapatkan semua segmen IP di wilayah tertentu. Kita bisa mendapatkannya dari ip2location. Alamat:Login hyperlink terlihat.
Pilih negara di sisi kiri kotak, pilih V4 atau V6 di kotak tengah, dan pilih jenis aturan di sebelah kanan. Ambil Jepang sebagai contoh:
Unduh dan unzip untuk mendapatkan file txt,Hapus lokasi pertama / { dan yang terakhir },Terakhir, tambahkan baris izinkan semua;Ubah nama akhiran dari .txt menjadi .conf dan unggah ke server, mengingat direktori tempat itu ditempatkan. (misalnya /usr/local/nginx/conf/nginx.conf/firewall.conf)
Ubah file konfigurasi Nginx yang sesuai dengan situs, seperti direktori /foo untuk hanya mengizinkan akses dari IP non-Jepang:
Jika Anda ingin seluruh situs, Anda dapat menulis ke kolom sever atau http, misalnya:
Kemudian masukkan perintah berikut untuk memuat ulang konfigurasi nginx:
|