Konfigurasi ACL berdasarkan kaedah permintaan dan pengepala permintaan dalam proksi terbalik Nginx

王林
Lepaskan: 2023-06-11 20:20:09
asal
1755 orang telah melayarinya

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:

  1. Anda ingin menapis permintaan berdasarkan jenis kaedah permintaan, seperti GET, POST, DELETE, dsb.
  2. Anda mahu menapis permintaan berdasarkan pengepala permintaan seperti Keizinan, Jenis Kandungan, dsb. Ini mungkin biasa digunakan dalam get laluan API untuk menyemak kebenaran pelanggan dan mengekalkan keselamatan yang diperlukan untuk aplikasi.

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;
}
Salin selepas log masuk

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;
}
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!