Rumah >Operasi dan penyelenggaraan >Nginx >Kawalan akses berasaskan segmen rangkaian dalam proksi terbalik Nginx

Kawalan akses berasaskan segmen rangkaian dalam proksi terbalik Nginx

WBOY
WBOYasal
2023-06-10 21:04:431796semak imbas

Proksi terbalik Nginx ialah bahagian penting dalam seni bina aplikasi Internet moden Ia boleh memajukan permintaan pelanggan ke pelayan bahagian belakang untuk mencapai pengimbangan beban dan fungsi lanjutan yang lain. Walau bagaimanapun, dalam senario sebenar, kami selalunya perlu melaksanakan tahap kawalan akses yang berbeza untuk pelanggan yang berbeza. Artikel ini akan memperkenalkan cara melaksanakan kawalan akses berdasarkan segmen rangkaian dalam proksi terbalik Nginx.

Pengetahuan asas proksi terbalik Nginx

Proksi terbalik Nginx ialah perisian pelayan berdasarkan protokol HTTP Ia sering digunakan untuk memajukan permintaan pelanggan ke pelayan belakang. Fungsi proksi terbalik adalah untuk menyembunyikan alamat IP dan nombor port pelayan bahagian belakang dan mengarahkan permintaan pelanggan ke pelayan bahagian belakang, dengan itu mencapai pengimbangan beban dan ketersediaan tinggi.

Apabila pelanggan menghantar permintaan kepada proksi terbalik, proksi terbalik akan memproses permintaan itu dahulu, dan kemudian menghantar permintaan itu kepada pelayan bahagian belakang Selepas pelayan bahagian belakang selesai memproses, proksi terbalik akan Maklum balas dikembalikan kepada pelanggan. Semasa proses ini, proksi terbalik boleh melakukan beberapa penapisan asas dan pemprosesan permintaan.

Kawalan akses berdasarkan segmen rangkaian

Dalam sesetengah senario, kami perlu mengawal akses berdasarkan alamat IP atau segmen rangkaian pelanggan. Sebagai contoh, laman web korporat dalaman selalunya hanya boleh diakses oleh pekerja dalaman dan dilarang daripada diakses oleh orang luar atau beberapa fungsi tertentu hanya boleh diakses oleh pengguna tertentu;

Untuk melaksanakan kawalan akses berasaskan segmen rangkaian, kami boleh menggunakan modul if dalam fail konfigurasi Nginx untuk mengesan sama ada alamat IP klien berada dalam segmen rangkaian yang dibenarkan. Berikut ialah contoh konfigurasi Nginx untuk kawalan akses berasaskan segmen rangkaian:

# 允许访问的IP地址段
set $allow_ip "192.168.0.0/16";

# 检查客户端IP地址是否在允许的网段内
if ($remote_addr !~ $allow_ip) {
    return 403;
}

Dalam konfigurasi di atas, kami menentukan segmen alamat IP yang dibenarkan untuk diakses dengan menetapkan pembolehubah $allow_ip. Kemudian, gunakan ungkapan biasa dalam modul if untuk mengesan sama ada alamat IP klien berada dalam segmen rangkaian yang dibenarkan. Jika tidak, ralat 403 dikembalikan, jika tidak akses dibenarkan.

Perlu diambil perhatian bahawa apabila menggunakan modul if, anda harus cuba mengelak daripada menggunakan ungkapan biasa yang kompleks dan pernyataan if bersarang, yang akan membawa kepada kemerosotan prestasi dan isu keselamatan.

Teknologi kawalan akses lain

Selain kawalan akses berasaskan segmen rangkaian, Nginx juga menyokong teknologi kawalan akses lain, seperti berdasarkan kaedah permintaan HTTP, pengepala permintaan HTTP, parameter permintaan HTTP, dll. Berikut ialah contoh konfigurasi Nginx untuk kawalan akses berdasarkan kaedah permintaan HTTP:

# 只允许GET和HEAD请求访问
if ($request_method !~ ^(GET|HEAD)$ ) {
    return 405;
}

Dalam konfigurasi di atas, kami mengehadkan akses kepada permintaan GET dan HEAD sahaja dengan mengesan pembolehubah $request_method.

Kesimpulan

Proksi terbalik Nginx telah menjadi bahagian yang amat diperlukan dalam seni bina aplikasi Internet moden dengan menyediakan pintu masuk yang mempunyai ketersediaan tinggi dan seimbang beban untuk pelanggan. Walau bagaimanapun, untuk memastikan keselamatan dan kestabilan pelayan, kami perlu melaksanakan tahap kawalan akses yang berbeza untuk pelanggan yang berbeza. Artikel ini memperkenalkan cara melaksanakan kawalan capaian berdasarkan segmen rangkaian dalam proksi terbalik Nginx dan memperkenalkan teknologi kawalan capaian yang lain.

Atas ialah kandungan terperinci Kawalan akses berasaskan segmen rangkaian dalam proksi terbalik Nginx. 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