2013-04-05 91 views
3

我試圖設置基本的HTTP身份驗證與多層Nginx。我想爲整個網站提供一個用戶名&,除了某個子目錄(URL)和該子目錄的一個單獨的用戶名密碼&。如果有人導航到該子目錄,我希望僅提示它們提供子目錄特定的憑據,而不是用於站點根目錄的憑據。Nginx密碼保護根目錄,併爲子目錄分開密碼

我該如何設置?

回答

8

參考:http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html

假設子目錄網址是http://www.example.com/admin/

步驟1:創建2個文件中存儲的用戶名/密碼(加密的)對使用htpasswd

# to secure the admin site 
htpasswd -bc /tmp/admin_passwd.txt admin adminpassword 
# to secure the main site 
htpasswd -bc /tmp/site_passwd.txt user userpassword 

步驟2:設置你的nginx配置:

server { 
    listen      80; 
    server_name     www.example.com; 
    root  /tmp/www; 

    location ^~ /admin/ { 
     auth_basic   "secured site admin"; 
     auth_basic_user_file /tmp/admin_passwd.txt; 
    } 

    location/{ 
     auth_basic   "secured site"; 
     auth_basic_user_file /tmp/site_passwd.txt; 
    } 
}