Nginx ialah pelayan web berprestasi tinggi dan pelayan proksi terbalik yang digunakan secara meluas dalam perkhidmatan Internet kerana kecekapan dan kebolehskalaannya. Nginx menyediakan banyak mekanisme untuk mengawal akses dan aplikasi web yang selamat, salah satunya ialah kawalan akses berasaskan ekspresi biasa. Artikel ini akan membincangkan cara menggunakan konfigurasi kawalan akses berasaskan ekspresi biasa dalam proksi terbalik Nginx.
Asas proksi terbalik Nginx
Sebelum kita mula menerangkan cara menggunakan kawalan akses berasaskan ekspresi biasa, kita perlu memahami beberapa pengetahuan asas proksi terbalik Nginx.
Prinsip kerja asas proksi terbalik Nginx adalah untuk memajukan permintaan pelanggan ke perkhidmatan hujung belakang. Biasanya, pelanggan mengakses aplikasi web melalui permintaan HTTP, dan pelayan proksi terbalik menerima permintaan ini, memajukannya ke pelayan web bahagian belakang dan mengembalikan respons kepada klien.
Tidak seperti pengimbang beban tradisional, proksi terbalik Nginx boleh melaksanakan tugas lain selain hanya memajukan permintaan ke pelayan hujung belakang, seperti mengawal akses, menyimpan cache kandungan, mengubah suai pengepala permintaan dan tindak balas, dsb.
Kawalan akses berasaskan ekspresi biasa
Nginx menyediakan banyak mekanisme untuk mengawal akses dan mengamankan aplikasi web, salah satunya ialah kawalan akses berasaskan ekspresi biasa. Ungkapan biasa boleh memadankan URL permintaan dengan tepat. Oleh itu, menggunakan ungkapan biasa sebagai peraturan padanan membolehkan kami mengawal akses yang diminta dengan lebih tepat.
Cara biasa untuk menggunakan ungkapan biasa untuk kawalan akses ialah menggunakan blok lokasi. Peranan blok lokasi adalah untuk memadankan URI yang diminta dan melaksanakan satu siri arahan apabila perlawanan berjaya. Arahan ini boleh termasuk proksi terbalik ke pelayan hujung belakang, menetapkan pengepala permintaan, respons caching, mengawal akses, dsb.
Menggunakan kawalan akses berasaskan ungkapan biasa, anda biasanya boleh menggunakan dua kaedah berikut:
Di bawah ini kami akan memperkenalkan kedua-dua kaedah ini secara terperinci.
Benarkan/tolak semua permintaan, dan kemudian benarkan/tolak permintaan tertentu melalui ungkapan biasa
Kaedah ini adalah untuk menggunakan ungkapan biasa untuk menentukan sama ada permintaan itu membenarkan akses. Pertama, kita perlu menambah kandungan berikut pada fail konfigurasi Nginx:
location / { deny all; allow [ip_address]; }
Konfigurasi di atas akan menyekat semua permintaan dan membenarkan akses kepada permintaan daripada alamat IP yang ditentukan. Seterusnya, kita boleh menggunakan ungkapan biasa untuk menentukan sama ada akses yang diminta dibenarkan. Contohnya, jika kami hanya mahu membenarkan permintaan URL tertentu, kami boleh menggunakan konfigurasi berikut:
location / { deny all; allow [ip_address]; } location ~ ^/allowed_path { allow all; }
Konfigurasi di atas akan membenarkan akses daripada permintaan daripada alamat IP yang ditentukan dan membenarkan akses kepada URL bermula dengan /allowed_path. Semua permintaan lain akan ditolak.
Tolak semua permintaan, dan kemudian benarkan permintaan tertentu melalui ungkapan biasa
Kaedah ini adalah untuk menolak semua permintaan dan menggunakan ungkapan biasa untuk membenarkan akses kepada permintaan tertentu. Kita boleh menggunakan yang berikut dalam fail konfigurasi Nginx:
location / { deny all; } location ~ ^/(allowed_path|another_path) { allow all; }
Konfigurasi di atas akan menafikan semua permintaan dan hanya membenarkan akses kepada permintaan bermula dengan /allowed_path atau /another_path.
Menggunakan ungkapan biasa untuk kawalan akses membolehkan kami mengawal akses yang diminta dengan lebih tepat. Walau bagaimanapun, untuk memastikan keselamatan dan prestasi, kami perlu mengkonfigurasi pelayan proksi terbalik Nginx dengan munasabah untuk mengelakkan pengalaman pengguna yang merendahkan kerana sekatan yang berlebihan pada permintaan. Pada masa yang sama, kami juga perlu melindungi pelayan proksi terbalik daripada serangan berniat jahat, seperti serangan penafian perkhidmatan, serangan suntikan SQL dan serangan skrip merentas tapak. Oleh itu, apabila menggunakan proksi terbalik Nginx, kita perlu mengikuti amalan terbaik untuk memastikan keselamatan dan kebolehpercayaan aplikasi web.
Atas ialah kandungan terperinci Konfigurasi kawalan akses berasaskan ekspresi biasa dalam proksi terbalik Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!