1. Latar Belakang
Dalam penyelenggaraan harian laman web kami, kami sering menghadapi keperluan sedemikian untuk menyekat perangkak atau pengguna berniat jahat tertentu daripada membuat permintaan kepada pelayan, kami perlu membina senarai hitam IP Dinamik. Untuk IP dalam senarai hitam, perkhidmatan akan dinafikan.
2. Senibina
Terdapat banyak cara untuk melaksanakan fungsi senarai hitam IP:
1 tahap, Konfigurasikan iptables untuk menolak permintaan rangkaian untuk IP tertentu; Pada peringkat aplikasi, di Sebelum meminta perkhidmatan, semak sama ada IP klien berada dalam senarai hitam.
Untuk memudahkan pengurusan dan perkongsian, kami melaksanakan fungsi senarai hitam IP melalui seni bina nginx+lua+redis Gambar rajah seni bina adalah seperti berikut:
Gambar rajah seni bina
3. Perlaksanaanterbuka
2. Pasang dan mulakan pelayan redis; 🎜>
konfigurasi nginx
di mana
lua_shared_dict ip_blacklist 1m;
ruang memori kongsi 1m yang diperuntukkan oleh ruang memori kongsi proses nginx untuk senarai hitam ip Cache, lihat:
access_by_lua_file lua/ip_blacklist.lua;Nyatakan lokasi skrip lua4 Konfigurasikan skrip lua dan kerap mendapatkan senarai hitam IP terkini daripada redis Untuk kandungan fail, lihat: https:/. /gist.github.com /ceelog/39862d297d9c85e743b3b5111b7d44cb
kandungan skrip lua
Buat pelayan jenis set rep_black yang baharu pada ip_blacklist senarai hitam ip terkini.
Selepas melengkapkan langkah di atas, muat semula nginx dan konfigurasi akan berkuat kuasa
Pada masa ini, akses pelayan Jika alamat IP anda berada dalam senarai hitam, akses ditolak:
Atas ialah kandungan terperinci Cara Nginx menggunakan Lua+Redis untuk mengharamkan IP secara dinamik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!