溫馨提示×

Nginx如何配置訪問控制

小樊
102
2025-06-15 17:38:15
欄目: 編程語言

在Nginx中配置訪問控制可以通過多種方式實現,包括使用allowdeny指令、基于IP的訪問控制、使用HTTP基本認證等。以下是一些常見的訪問控制配置示例:

1. 基于IP的訪問控制

你可以允許或拒絕特定的IP地址或IP范圍訪問你的服務器。

允許特定IP訪問

server {
    listen 80;
    server_name example.com;

    location / {
        allow 192.168.1.1;
        deny all;
        root /var/www/html;
    }
}

拒絕特定IP訪問

server {
    listen 80;
    server_name example.com;

    location / {
        deny 192.168.1.1;
        allow all;
        root /var/www/html;
    }
}

允許多個IP訪問

server {
    listen 80;
    server_name example.com;

    location / {
        allow 192.168.1.1;
        allow 192.168.1.2;
        deny all;
        root /var/www/html;
    }
}

2. 使用HTTP基本認證

你可以要求用戶提供用戶名和密碼才能訪問特定的資源。

配置HTTP基本認證

server {
    listen 80;
    server_name example.com;

    location /protected/ {
        auth_basic "Restricted Area";
        auth_basic_user_file /etc/nginx/.htpasswd;

        root /var/www/html;
    }
}

在這個例子中,auth_basic指令設置了認證提示信息,auth_basic_user_file指令指定了包含用戶名和密碼的文件路徑。你需要使用htpasswd工具來創建這個文件。

3. 基于用戶組的訪問控制

你可以使用Nginx Plus(商業版本)或第三方模塊來實現基于用戶組的訪問控制。

使用Nginx Plus的訪問控制模塊

server {
    listen 80;
    server_name example.com;

    location /admin/ {
        auth_request /auth;

        root /var/www/html/admin;
    }

    location = /auth {
        internal;
        proxy_pass http://auth-server/validate;
        proxy_pass_request_body off;
        proxy_set_header Content-Length "";
        proxy_set_header X-Original-URI $request_uri;
    }
}

在這個例子中,auth_request指令將認證請求轉發到一個外部認證服務。

4. 使用ACL(訪問控制列表)

Nginx Plus支持使用ACL進行更復雜的訪問控制。

配置ACL

server {
    listen 80;
    server_name example.com;

    acl allowed_ips src 192.168.1.1 192.168.1.2;
    acl auth_required src 192.168.1.3;

    location / {
        allow allowed_ips;
        deny all;
        root /var/www/html;
    }

    location /admin/ {
        allow auth_required;
        deny all;
        root /var/www/html/admin;
    }
}

在這個例子中,acl指令定義了兩個訪問控制列表,一個用于允許特定IP訪問,另一個用于要求特定IP進行認證。

總結

以上是一些常見的Nginx訪問控制配置示例。根據你的具體需求,你可以選擇適合的方法來實現訪問控制。記得在修改Nginx配置文件后,使用nginx -s reload命令重新加載配置以使更改生效。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女