2011-01-27 170 views
2

我需要使用nginx密碼保護我的文件夾。Nginx密碼保護

我用這個規則

location ^~ /test/ 
    { 
      auth_basic   "Restricted"; 
      auth_basic_user_file conf/htpasswd; 
    } 

但problme的是,如果我去/test/file.php它的工作原理,它並不需要授權。 僅限/測試/要求輸入密碼。

回答

1

我使用的是這樣的:

 location ~ /img/index.php { 
     root /var/www/nginx-default/phpmyedit/; 
     auth_basic "phpmyedit"; 
     auth_basic_user_file /var/www/phpmyedit.pass; 
     access_log /var/log/nginx/img.log; 
     fastcgi_pass 127.0.0.1:9000; 
     fastcgi_index index.php; 
     fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name; 
     include /etc/nginx/fastcgi_params; 
    } 
0

假設你已經設定了密碼正確,所有你需要做的就是刪除尾隨斜線在你的路徑。另外,你不需要規則中的^〜。這裏有一個例子:

  location /test { 
      try_files $uri $uri/ =404; 
      auth_basic "Access Denied!"; 
      auth_basic_user_file /etc/nginx/.htpasswd; 
     } 

新用戶添加到密碼使用以下步驟:

sudo sh -c "echo -n 'admin:' >> /etc/nginx/.htpasswd" 

這將添加一個新用戶:admin該文件。要爲此新用戶設置加密密碼,請使用:

sudo sh -c "openssl passwd -apr1 >> /etc/nginx/.htpasswd" 

系統將提示您輸入密碼並驗證新密碼。而已。你們都準備好了!