Bagaimana untuk mengkonfigurasi pelayan proksi Nginx untuk melaksanakan kawalan akses perkhidmatan web yang diedarkan?

王林
Lepaskan: 2023-09-05 16:14:01
asal
1322 orang telah melayarinya

Bagaimana untuk mengkonfigurasi pelayan proksi Nginx untuk melaksanakan kawalan akses perkhidmatan web yang diedarkan?

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

2. Konfigurasikan pelayan proksi Nginx

  1. Edit fail konfigurasi Nginx
    Gunakan arahan berikut Buka fail konfigurasi Nginx:
sudo nano /etc/nginx/nginx.conf
Salin selepas log masuk
  1. Configure proxy service
    Dalam fail konfigurasi Nginx, cari bahagian http dan tambahkannya Kod berikut: http部分,并在其中添加以下代码:
http {
    ...
    upstream backend {
        server web1.example.com:80;
        server web2.example.com:80;
        server web3.example.com:80;
    }
    ...
}
Salin selepas log masuk

上述代码中,upstream backend定义了后端服务器的地址和端口号,并可以根据实际情况添加或删除后端服务器。

  1. 配置访问控制
    可以根据具体需求配置不同的访问控制策略。以下是一些常见的配置示例:

(1)IP白名单:

location / {
    allow 192.168.0.0/24;
    deny all;
}
Salin selepas log masuk

上述配置表示只允许IP地址为192.168.0.0/24的客户端访问。

(2)基于HTTP Basic认证:

location / {
    auth_basic "Restricted Content";
    auth_basic_user_file /etc/nginx/.htpasswd;
}
Salin selepas log masuk

上述配置表示需要使用HTTP Basic认证,并通过.htpasswd文件验证用户。

(3)基于URL路径:

location /admin {
    deny all;
}

location /api {
    allow all;
}
Salin selepas log masuk

上述配置表示对/admin路径的请求进行拒绝,对/api路径的请求进行允许。

  1. 重启Nginx服务器
    在完成配置后,通过以下命令重启Nginx服务器使配置生效:
sudo service nginx restart
Salin selepas log masuk
Salin selepas log masuk

三、实例演示

假设我们有三个后端服务器:web1.example.comweb2.example.comweb3.example.com,现在我们来演示如何配置访问控制。

  1. 配置文件示例:
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;
        }
    }
    ...
}
Salin selepas log masuk
  1. 重启Nginx服务器:
sudo service nginx restart
Salin selepas log masuk
Salin selepas log masuk

通过以上配置,我们实现了以下功能:

1)只允许IP地址为192.168.0.0/24的客户端访问根路径/
2)拒绝对/admin路径的请求进行访问。
3)允许对/api

rrreee

Dalam kod di atas, upstream backend mentakrifkan alamat dan nombor port pelayan backend, dan backend boleh ditambah atau dipadam mengikut pelayan situasi sebenar.

    Konfigurasikan kawalan akses

    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 192.168.0.0 Akses pelanggan ke /24. #🎜🎜##🎜🎜# (2) Berdasarkan pengesahan Asas HTTP: #🎜🎜#rrreee#🎜🎜#Konfigurasi di atas menunjukkan bahawa pengesahan Asas HTTP perlu digunakan dan pengguna disahkan melalui .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 /
. #🎜🎜#2) Tolak akses kepada permintaan untuk laluan /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!

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!