Dengan kemajuan pesat pembangunan rangkaian, bilangan aplikasi dan perkhidmatan yang digunakan semakin meningkat. Dalam sesetengah senario, permintaan perlu dihalakan ke pelayan atau aplikasi tertentu. Nginx ialah pelayan web berprestasi tinggi dan kaedah proksi terbalik yang biasa digunakan yang boleh menyelesaikan masalah ini. Berdasarkan modul ACL yang disediakan oleh proksi terbalik Nginx, pentadbir boleh mengawal dan mengurus penghalaan permintaan, kawalan akses dan isu keselamatan rangkaian yang lain secara fleksibel.
Dalam proksi terbalik, permintaan dihantar daripada klien ke pelayan proksi terbalik, dan pelayan proksi menghantar permintaan ke pelayan belakang bagi pihak klien dan memberikan hasil pulangan kepada klien . Sebagai contoh, dalam aplikasi web moden dengan pelbagai bahasa dan susunan teknologi, proksi terbalik Nginx boleh digunakan untuk menghalakan permintaan yang berbeza ke perkhidmatan back-end yang berbeza melalui nama domain yang sama.
Dalam artikel ini, kita akan mempelajari cara mengkonfigurasi ACL berdasarkan kata kunci dan senarai hitam untuk melaksanakan dasar penghalaan yang lebih terperinci dan kawalan keselamatan untuk proksi songsang Nginx.
ACL Kata Kunci ialah cara untuk melaksanakan penghalaan permintaan dengan memadankan kata kunci dalam URL permintaan. Contohnya, dalam aplikasi semasa, apabila URL yang diminta mengandungi "/app1/", kami mahu proksi terbalik Nginx mengarahkan permintaan ke aplikasi belakang 1. Jika URL mengandungi "/app2/", permintaan dihalakan ke aplikasi hujung belakang 2.
Untuk melaksanakan fungsi ini, anda perlu mengkonfigurasi kata kunci ACL dalam fail konfigurasi Nginx. Begini cara untuk mengkonfigurasinya:
http { ... # 关键词acl map $request_uri $app_name { ~* "/app1/" app1; ~* "/app2/" app2; default ""; } }
Dalam konfigurasi ini, $request_uri ialah pembolehubah terbina dalam Nginx, mewakili URL yang diminta. Nilai pembolehubah ini dihantar kepada arahan peta, yang sepadan dengan ungkapan biasa kata kunci yang dipratentukan. Jika padanan berjaya, nama aplikasi disimpan dalam pembolehubah $app_name, jika tidak, nilai lalai digunakan.
Seterusnya, anda boleh menghantar pembolehubah $app_name yang ditakrifkan di atas sebagai sasaran proksi kepada pilihan URL proksi dalam arahan proksi:
server { ... location / { ... # 配置关键词代理 proxy_pass http://$app_name.backend.com; } }
Dalam konfigurasi ini, kata kunci ACL akan diminta dari Nama aplikasi yang diminta dipadankan dalam URL, dan permintaan pelanggan dihalakan ke aplikasi back-end yang sepadan melalui arahan proksi.
ACL Senarai Hitam ialah kaedah yang digunakan untuk menyekat akses daripada IP tertentu atau URL yang diminta. Pendekatan ini sangat berguna dalam beberapa situasi. Sebagai contoh, sekiranya berlaku serangan berniat jahat, pentadbir boleh mengkonfigurasi senarai hitam ACL dalam proksi terbalik Nginx untuk menafikan akses kepada sekumpulan alamat IP. Anda juga boleh menggunakan ACL senarai hitam untuk menafikan URL serangan biasa tertentu.
Begini cara mengkonfigurasi ACL berasaskan senarai hitam:
http { ... # 黑名单acl geo $blocked_ip { default 0; include /path/to/blacklists/ip.txt; } }
Dalam konfigurasi ini, arahan geo mentakrifkan pembolehubah memori bernama $blocked_ip, yang digunakan untuk menyimpan senarai alamat IP yang disekat. Dalam contoh ini, fail senarai hitam alamat IP luaran digunakan. Format fail adalah seperti berikut:
10.2.1.10 1; 192.168.0.0/24 1; 202.102.85.154 1;
Setiap baris fail mengandungi alamat IP atau segmen rangkaian dalam format CIDR, diikuti dengan nombor 1 untuk menunjukkan bahawa alamat IP atau segmen rangkaian CIDR ini disekat.
Seterusnya, anda boleh menggunakan ACL senarai hitam ini dalam konfigurasi Nginx:
server { ... location / { ... # 配置黑名单ACL if ($blocked_ip) { return 403; } proxy_pass http://backend.com; } }
Dalam konfigurasi ini, arahan if digunakan untuk menentukan sama ada alamat IP yang diminta berada dalam senarai hitam Jika ya 403 Maklum balas terlarang akan dikembalikan secara langsung. Jika tidak, permintaan akan dihalakan ke pelayan proksi bahagian belakang.
Ringkasnya, proksi terbalik Nginx menyediakan modul ACL yang baik, yang boleh digunakan bersama modul berfungsi lain untuk mencapai penghalaan permintaan dan kawalan akses yang sangat fleksibel. Dalam penggunaan proksi terbalik, memahami dan menguasai kaedah ini boleh membolehkan kami menyesuaikan diri dengan lebih baik kepada pelbagai situasi dan meningkatkan kualiti dan keselamatan perkhidmatan rangkaian.
Atas ialah kandungan terperinci Konfigurasi ACL berdasarkan kata kunci dan senarai hitam dalam proksi terbalik Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!