Nginx ialah pelayan web sumber terbuka berprestasi tinggi dan pelayan proksi terbalik Kebolehskalaan dan pilihan konfigurasi yang berkuasa menjadikannya salah satu komponen yang sangat diperlukan dalam pembangunan web. Fungsi proksi terbalik Nginx boleh menghantar permintaan daripada klien ke berbilang pelayan belakang untuk mencapai pengimbangan beban dan ketersediaan tinggi.
Dalam proksi terbalik, memandangkan pelayan bahagian belakang mungkin mengendalikan berbilang perkhidmatan, ia perlu memadankan laluan URL permintaan dan memajukan permintaan ke pelayan bahagian belakang yang betul. Nginx menyediakan konfigurasi ACL (Senarai Kawalan Akses) berdasarkan laluan URL, yang boleh menghalakan permintaan ke pelayan bahagian belakang yang sepadan mengikut peraturan URL yang ditentukan.
Artikel ini akan memperkenalkan cara melaksanakan konfigurasi ACL dalam proksi terbalik Nginx berdasarkan padanan laluan URL.
ACL ialah mekanisme yang digunakan untuk mengawal kebenaran akses Ia boleh menentukan sama ada permintaan dibenarkan untuk mengakses berdasarkan peraturan tertentu. Dalam Nginx, anda boleh menggunakan arahan location
untuk mengkonfigurasi peraturan ACL. Sintaks arahan location
adalah seperti berikut:
location [ = | ~ | ~* | ^~ ] uri { ... }
Parameter uri boleh menjadi laluan URI biasa atau ungkapan biasa. Apabila menggunakan laluan URI sebagai peraturan ACL, anda boleh menggunakan aksara padanan berikut:
=
: Padanan tepat Hanya apabila laluan URI betul-betul sama dengan nilai dalam arahan lokasi, the perlawanan akan berjaya. ~
: Padanan ungkapan biasa, sensitif huruf besar-besaran. ~*
: Padanan ungkapan biasa, tidak peka huruf besar-besaran. ^~
: Pemadanan awalan, jika laluan URI bermula dengan nilai dalam arahan lokasi, padanan itu berjaya. Andaikan terdapat tiga perkhidmatan yang perlu diseimbangkan dalam proksi terbalik Nginx. Laluan URI mereka ialah:
Kami perlu memajukan permintaan kepada tiga pelayan bahagian belakang, alamat IP mereka ialah:
Kami boleh menggunakan fail konfigurasi Nginx berikut untuk melaksanakan fungsi proksi terbalik:
🎜>Dalam fail konfigurasi di atas, kami menggunakan arahan untuk mentakrifkan tiga pelayan bahagian belakang, dan kemudian menggunakan arahan upstream
dalam blok server
untuk mengkonfigurasi tiga peraturan proksi terbalik masing-masing. Apabila laluan URI permintaan ialah location
, /app1
, /app2
, Nginx akan memajukan permintaan ke pelayan bahagian belakang yang sepadan untuk mencapai pengimbangan beban dan ketersediaan tinggi. /app3
http { upstream myapp1 { server 192.168.0.1; } upstream myapp2 { server 192.168.0.2; } upstream myapp3 { server 192.168.0.3; } server { listen 80; server_name myserver.com; location /app1 { proxy_pass http://myapp1; } location /app2 { proxy_pass http://myapp2; } location /app3 { proxy_pass http://myapp3; } } }
The regular expression fungsi pemadanan sepadan dengan laluan permintaan ke pelayan hujung belakang yang sepadan. location
~
^
/v1/app1
dan laluan URI atau ungkapan biasa, laluan permintaan padanan dan pemadanan boleh dicapai Ke hadapan. Kaedah konfigurasi ACL ini boleh mencapai pengimbangan beban dan ketersediaan tinggi untuk berbilang pelayan bahagian belakang dan memenuhi keperluan proksi terbalik dalam senario yang berbeza. location
Atas ialah kandungan terperinci Konfigurasi ACL berdasarkan padanan URL dalam proksi terbalik Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!