Nginx ialah pelayan web yang ringan dan cekap yang semakin digunakan dalam membina aplikasi web moden. Fungsi proksi terbaliknya membolehkan Nginx digunakan untuk pengimbangan beban, caching, gerbang API sumber terbuka dan tujuan lain. Artikel ini akan menumpukan pada konfigurasi ACL (Senarai Kawalan Akses) berdasarkan kaedah permintaan dan pengepala permintaan.
ACL ialah mekanisme yang digunakan untuk mengawal akses dan digunakan secara meluas dalam Nginx. Melalui ACL, Nginx boleh menapis dan mengesahkan permintaan dan kemudian mengedarkannya ke pelayan sasaran. Mekanisme ACL terutamanya terdiri daripada tiga bahagian: pembolehubah, pengendali dan nilai.
Pembolehubah ialah beberapa maklumat dalam permintaan, seperti pengepala permintaan, kaedah permintaan, parameter permintaan, dsb. Nginx boleh menyemak nilai pembolehubah ini untuk menentukan sama ada untuk menghantar permintaan ke pelayan. Nilai merujuk kepada data yang dibandingkan dengan pembolehubah. Operator menentukan cara pembolehubah dan nilai dibandingkan.
Nginx menyokong konfigurasi ACL berdasarkan kaedah permintaan dan pengepala permintaan. Anda mungkin mahu menggunakan konfigurasi ini dalam situasi berikut:
Mengkonfigurasi ACL berdasarkan kaedah permintaan
Mengkonfigurasi ACL berdasarkan kaedah permintaan adalah sangat mudah. Anda perlu menggunakan pembolehubah $request_method, tentukan operator untuk menyemak nilai pembolehubah ini, dan kemudian nyatakan senarai kaedah permintaan yang dibenarkan. Berikut ialah contoh:
location /api { if ($request_method !~ ^(GET|POST|PUT)$ ) { return 405; } proxy_pass http://localhost:8080; }
Konfigurasi ini bermakna jika kaedah permintaan bukan GET, POST atau PUT, status HTTP 405 ("Kaedah Tidak Dibenarkan") dikembalikan. Jika kaedah permintaan selain GET, POST atau PUT dipadankan di sini, Nginx tidak akan menghantarnya ke pelayan proksi.
Konfigurasi ACL berdasarkan pengepala permintaan
Konfigurasi ACL berdasarkan pengepala permintaan adalah serupa dengan konfigurasi berdasarkan kaedah permintaan. Anda boleh mendapatkan maklumat pengepala dalam permintaan dengan menggunakan pembolehubah $http_ ditambah dengan nama pengepala permintaan. Anda kemudiannya boleh menggunakan operator untuk menyemak nilai pengepala menggunakan kaedah yang serupa dengan pendekatan berasaskan permintaan. Contohnya:
location /api { if ($http_authorization !~* "Bearer [a-zA-Z0-9]+" ) { return 401; } proxy_pass http://localhost:8080; }
Dalam konfigurasi di atas, jika pengepala permintaan Keizinan tidak mengandungi teg keizinan bermula dengan Pembawa, status HTTP 401 ("Tidak Diizinkan") akan dikembalikan. Oleh itu, Nginx tidak akan menghantar sebarang permintaan kepada pelayan proksi kecuali untuk pengepala kebenaran yang betul.
Ringkasan
Fungsi ACL Nginx boleh digunakan untuk melaksanakan banyak logik berkaitan permintaan. Konfigurasi ACL berdasarkan kaedah permintaan dan pengepala permintaan ialah kaedah yang berkesan untuk melaksanakan kawalan akses dalam senario tertentu. Selain itu, anda boleh menggabungkannya dengan ciri Nginx yang lain, seperti pengelogan dan pengehadan kadar, untuk meningkatkan keselamatan dan prestasi aplikasi web anda.
Atas ialah kandungan terperinci Konfigurasi ACL berdasarkan kaedah permintaan dan pengepala permintaan dalam proksi terbalik Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!