Dengan perkembangan berterusan perniagaan Internet, kaedah penggunaan pelbagai aplikasi web juga sentiasa dikemas kini. Antaranya, proksi terbalik digunakan secara meluas untuk meningkatkan prestasi dan keselamatan laman web. Sebagai pelayan proksi songsang berprestasi tinggi, Nginx mempunyai kaedah konfigurasi yang fleksibel dan boleh melaksanakan kawalan akses yang lebih terperinci berdasarkan pengepala permintaan.
Dalam aplikasi praktikal, kami selalunya perlu mengehadkan kebenaran akses berdasarkan pengguna atau pelanggan yang berbeza. Contohnya, aplikasi perlu dihadkan kepada pekerja dalam syarikat, atau hanya pengguna yang membayar boleh mengakses ciri lanjutan tertentu. Pada masa ini, kawalan akses berdasarkan pengepala permintaan menjadi sangat penting.
Nginx menyediakan banyak modul dan arahan untuk mengawal akses berdasarkan atribut berbeza pengepala permintaan. Di bawah, kami akan memperkenalkan beberapa kaedah konfigurasi yang biasa digunakan.
Pengepala Ejen Pengguna boleh digunakan untuk mengenal pasti jenis klien, seperti penyemak imbas, peranti mudah alih, dsb. Kami boleh menyekat akses kepada pelanggan tertentu berdasarkan pengepala Agen-Pengguna. Contohnya, konfigurasi berikut boleh menafikan akses kepada semua labah-labah enjin carian yang Ejen Penggunanya ialah "Baiduspider":
if ($http_user_agent ~* "^baiduspider") { return 403; }
Pengepala perujuk digunakan untuk mengenal pasti halaman sumber permintaan . Kami boleh menyekat akses ke halaman mana permintaan itu berasal berdasarkan pengepala Perujuk. Sebagai contoh, konfigurasi berikut boleh menolak semua permintaan yang Perujuknya bukan daripada "www.example.com":
if ($http_referer !~* "^https?://www.example.com") { return 403; }
Pengepala kuki mengandungi yang terakhir klien permintaan Nilai kuki yang ditetapkan pada masa itu. Kami boleh menentukan sama ada pengguna mempunyai kebenaran khusus berdasarkan pengepala Kuki. Sebagai contoh, konfigurasi berikut hanya boleh membenarkan akses kepada pengguna dengan kuki "vip=true":
if ($http_cookie !~* "vip=true") { return 403; }
Pengepala kebenaran digunakan untuk mengandungi pengesahan pengguna maklumat, Seperti pengesahan asas (Pengesahan Asas HTTP). Kami boleh menyekat akses kepada pengguna tertentu berdasarkan pengepala Kebenaran. Sebagai contoh, konfigurasi berikut boleh menafikan akses kepada pengguna dengan nama pengguna "admin":
if ($http_authorization ~* "^Basics+.+:admin:") { return 403; }
Perlu diingat bahawa arahan Nginx's if akan dilaksanakan dalam setiap permintaan, yang akan membawa overhed prestasi tertentu. Jika terdapat sejumlah besar arahan if, ia boleh menjejaskan prestasi pelayan proksi terbalik. Oleh itu, kita harus mengelakkan penyalahgunaan jika arahan sebanyak mungkin. Jika anda mempunyai keperluan kawalan akses yang kompleks, anda boleh mempertimbangkan untuk menggunakan skrip Lua untuk melaksanakannya.
Secara amnya, konfigurasi kawalan akses berasaskan pengepala permintaan adalah bahagian yang sangat penting dalam proksi terbalik Nginx. Melalui konfigurasi yang munasabah, kawalan capaian yang lebih halus boleh dicapai dan keselamatan dan kestabilan aplikasi web boleh dipertingkatkan.
Atas ialah kandungan terperinci Konfigurasi kawalan akses berdasarkan pengepala permintaan dalam proksi terbalik Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!