Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimana Nginx melaksanakan konfigurasi kawalan akses berdasarkan IP sumber permintaan

Bagaimana Nginx melaksanakan konfigurasi kawalan akses berdasarkan IP sumber permintaan

WBOY
WBOYasal
2023-11-08 10:09:21780semak imbas

Bagaimana Nginx melaksanakan konfigurasi kawalan akses berdasarkan IP sumber permintaan

Cara Nginx melaksanakan konfigurasi kawalan akses berdasarkan IP sumber permintaan memerlukan contoh kod khusus

Dalam pembangunan aplikasi rangkaian, melindungi pelayan daripada serangan berniat jahat adalah langkah yang sangat penting. Menggunakan Nginx sebagai pelayan proksi terbalik, kami boleh mengkonfigurasi kawalan akses IP untuk menyekat akses kepada alamat IP tertentu untuk meningkatkan keselamatan pelayan. Artikel ini akan memperkenalkan cara melaksanakan konfigurasi kawalan akses berdasarkan IP sumber permintaan dalam Nginx dan memberikan contoh kod khusus.

Pertama, kita perlu mengedit fail konfigurasi Nginx. Biasanya, fail ini terletak di /etc/nginx/nginx.conf. Dalam fail ini, kita boleh mencari blok yang dipanggil "http", yang mengandungi konfigurasi Nginx global. Kita perlu menambah kod berikut pada blok:

http {
    # 定义一个名为“block_ip”的map,用于存储需要屏蔽的IP地址
    map $remote_addr $block_ip {
        default 0;  # 默认情况下,不屏蔽任何IP地址
        192.168.0.100 1;  # 需要屏蔽的IP地址,值设为1
        192.168.0.101 1;  # 需要屏蔽的IP地址,值设为1
    }
    
    # 定义一个名为“block_ips”的变量,通过内部重定向的方式使用“block_ip”进行判断
    set $block_ips "";
    if ($block_ip = 1) {
        set $block_ips "block";
    }
    
    # 在server块中添加访问控制配置,只允许没有被屏蔽的IP地址访问
    server {
        listen 80;
        server_name example.com;
        
        # 添加对block_ips变量值的判断
        if ($block_ips = "block") {
            return 403;
        }
    }
}

Dalam kod di atas, kami mula-mula menentukan peta bernama "block_ip" untuk menyimpan alamat IP yang perlu disekat. Secara lalai, ia ditetapkan kepada 0, yang bermaksud tiada alamat IP disekat. Kami boleh menetapkan alamat IP tertentu kepada 1 seperti yang diperlukan, menunjukkan bahawa alamat IP perlu disekat.

Seterusnya, kami mentakrifkan pembolehubah bernama "block_ips" dan menggunakan "block_ip" untuk pertimbangan melalui ubah hala dalaman. Pertama, kami menetapkan pembolehubah kepada kosong. Kemudian, gunakan pernyataan if untuk menentukan sama ada nilai "block_ip" adalah sama dengan 1. Jika ya, tetapkan "block_ips" kepada "block".

Akhir sekali, konfigurasi kawalan akses ditambah dalam blok pelayan. Kami menggunakan arahan dengar untuk menentukan nombor port pendengaran, dan arahan nama_server untuk menentukan nama domain atau alamat IP. Dalam pernyataan if, kami menentukan sama ada nilai "block_ips" adalah sama dengan "block". Jika ya, kembalikan respons 403 Forbidden.

Kod di atas hanyalah contoh dan hanya digunakan untuk menunjukkan cara melaksanakan konfigurasi kawalan akses berdasarkan IP sumber permintaan dalam Nginx. Sila buat konfigurasi yang sesuai mengikut keperluan sebenar, seperti menambah alamat IP yang perlu disekat, mengubah suai nombor port pendengaran dan nama domain, dsb.

Ringkasnya, Nginx boleh melaksanakan kawalan akses dengan mudah berdasarkan IP sumber permintaan dengan menggunakan peta dan pembolehubah. Dengan membuat konfigurasi yang sepadan dalam fail konfigurasi, kami boleh menyekat akses kepada alamat IP tertentu, dengan itu meningkatkan keselamatan pelayan.

Atas ialah kandungan terperinci Bagaimana Nginx melaksanakan konfigurasi kawalan akses berdasarkan IP sumber permintaan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn