Bagaimana untuk mengkonfigurasi pelayan proksi Nginx untuk mencapai kawalan akses perkhidmatan web yang diedarkan?
Pengenalan:
Dalam seni bina perkhidmatan web teragih moden, untuk memastikan keselamatan dan kebolehpercayaan sistem, kawalan akses adalah bahagian yang sangat penting. Sebagai pelayan proksi berprestasi tinggi dan berskala, Nginx boleh digunakan untuk melaksanakan kawalan akses perkhidmatan web yang diedarkan dan menyediakan pilihan konfigurasi yang fleksibel. Artikel ini akan memperkenalkan cara mengkonfigurasi pelayan proksi Nginx untuk melaksanakan kawalan akses perkhidmatan web yang diedarkan dan menyediakan contoh kod yang berkaitan.
1. Pasang pelayan Nginx
Pertama, kita perlu memasang pelayan Nginx. Dalam sistem Linux, ia boleh dipasang melalui alat pengurusan pakej. Mengambil sistem Ubuntu sebagai contoh, gunakan arahan berikut untuk memasang:
sudo apt-get update sudo apt-get install nginx
2. Konfigurasikan pelayan proksi Nginx
sudo nano /etc/nginx/nginx.conf
http
dan tambahkannya Kod berikut: http
部分,并在其中添加以下代码:http { ... upstream backend { server web1.example.com:80; server web2.example.com:80; server web3.example.com:80; } ... }
上述代码中,upstream backend
定义了后端服务器的地址和端口号,并可以根据实际情况添加或删除后端服务器。
(1)IP白名单:
location / { allow 192.168.0.0/24; deny all; }
上述配置表示只允许IP地址为192.168.0.0/24
的客户端访问。
(2)基于HTTP Basic认证:
location / { auth_basic "Restricted Content"; auth_basic_user_file /etc/nginx/.htpasswd; }
上述配置表示需要使用HTTP Basic认证,并通过.htpasswd
文件验证用户。
(3)基于URL路径:
location /admin { deny all; } location /api { allow all; }
上述配置表示对/admin
路径的请求进行拒绝,对/api
路径的请求进行允许。
sudo service nginx restart
三、实例演示
假设我们有三个后端服务器:web1.example.com
、web2.example.com
和web3.example.com
,现在我们来演示如何配置访问控制。
http { ... upstream backend { server web1.example.com:80; server web2.example.com:80; server web3.example.com:80; } server { listen 80; location / { allow 192.168.0.0/24; deny all; proxy_pass http://backend; } location /admin { deny all; proxy_pass http://backend; } location /api { allow all; proxy_pass http://backend; } } ... }
sudo service nginx restart
通过以上配置,我们实现了以下功能:
1)只允许IP地址为192.168.0.0/24
的客户端访问根路径/
。
2)拒绝对/admin
路径的请求进行访问。
3)允许对/api
Dalam kod di atas, upstream backend
mentakrifkan alamat dan nombor port pelayan backend, dan backend boleh ditambah atau dipadam mengikut pelayan situasi sebenar.
Anda boleh mengkonfigurasi dasar kawalan akses yang berbeza mengikut keperluan khusus. Berikut ialah beberapa contoh konfigurasi biasa:
#🎜🎜##🎜🎜# (1) Senarai putih IP: #🎜🎜#rrreee#🎜🎜#Konfigurasi di atas bermakna hanya alamat IP yang dibenarkan menjadi.htpasswd
fail. #🎜🎜##🎜🎜# (3) Berdasarkan laluan URL: #🎜🎜#rrreee#🎜🎜#Konfigurasi di atas menunjukkan bahawa permintaan untuk laluan /admin
akan ditolak dan /api permintaan laluan dibenarkan. #🎜🎜#<ol start="4">#🎜🎜#Mulakan semula pelayan Nginx#🎜🎜#Selepas melengkapkan konfigurasi, mulakan semula pelayan Nginx melalui arahan berikut untuk menjadikan konfigurasi berkuat kuasa: #🎜🎜##🎜🎜 #rrreee#🎜🎜 #三、Contoh demonstrasi#🎜🎜##🎜🎜# Andaikan kami mempunyai tiga pelayan bahagian belakang: <code>web1.example.com
, web2.example.com
dan web3.example.com
, kini kami menunjukkan cara untuk mengkonfigurasi kawalan akses. #🎜🎜##🎜🎜##🎜🎜#Contoh fail konfigurasi: #🎜🎜##🎜🎜#rrreee#🎜🎜##🎜🎜#Mulakan semula pelayan Nginx: ##🎜🎜###🎜🎜###🎜🎜 Melalui konfigurasi di atas, kami telah mencapai fungsi berikut: #🎜🎜##🎜🎜#1) Hanya klien dengan alamat IP 192.168.0.0/24
dibenarkan untuk mengakses laluan root /
/admin
. #🎜🎜#3) Benarkan akses kepada permintaan ke laluan /api
. #🎜🎜##🎜🎜#Kesimpulan: #🎜🎜# Dengan mengkonfigurasi pelayan proksi Nginx, kami boleh mencapai kawalan akses perkhidmatan web yang diedarkan. Melalui dasar kawalan akses yang dikonfigurasikan dengan betul, kami boleh meningkatkan keselamatan dan kebolehpercayaan sistem. #🎜🎜##🎜🎜#Di atas adalah pengenalan tentang cara mengkonfigurasi pelayan proksi Nginx untuk melaksanakan kawalan akses perkhidmatan web yang diedarkan saya harap ia akan membantu semua orang. #🎜🎜#Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi pelayan proksi Nginx untuk melaksanakan kawalan akses perkhidmatan web yang diedarkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!