Nginx用戶認證配置方法詳解

分類:IT技術 時間:2017-03-25

Nginx超級強大它可以單獨為一個域名設置用戶認證,方法也很簡單我們只要生成用戶認證的用戶名和密碼,然後再Nginx添加auth認證配置即可。

yum -y install httpd

Nginx可以為某一個域名單獨加用戶認證,具體做法如下:

1. 生成用戶認證的用戶名和密碼:

 
  1. #wget -c soft.vpser.net/lnmp/ext/htpasswd.sh;bash htpasswd.sh 

根據提示輸入:

用戶名:
密碼:
文件名:

腳本會自動生成認證文件,auth.conf內容如下:

 
  1. /usr/local/nginx/conf/auth.conf 

2. 為Nginx添加auth認證配置

下面以某域名下面的auth目錄為例,在域名的server段裏加上如下代碼:

 
  1. location ^~ /auth/ { 
  2. location ~ .*.(php|php5)?$ { 
  3. fastcgi_pass unix:/tmp/php-cgi.sock; 
  4. fastcgi_index index.php; 
  5. include fcgi.conf; 
  6. auth_basic "Authorized users only"; 
  7. auth_basic_user_file /usr/local/nginx/conf/auth.conf 

auth_basic_user_file 為htpasswd文件的路徑

3. 重啟Nginx

訪問http://yourdomainname/auth/ 就會提示輸入用戶名和密碼。

如果我們只想為目錄增加用戶認證上面方法顯示不行,下面我來介紹具體目錄用戶認證。

為目錄增加用戶認證( auth basic)。

nginx的auth_basic認證采用與apache兼容的密碼文件,因此我們需要通過apache的htpasswd生成密碼文件。

首先查找你系統上的htpasswd:

 
  1. find / –name htpasswd 

一般CentOS都會裝apache的,位置在:

 
  1. /usr/bin/htpasswd 

如果沒找到那就自行安裝:

 
  1. yum install apache 

並找到htpasswd文件地址。

找到htpasswd文件後,我們來創建一個用戶,比如這個用戶叫:xiaoquan

 
  1. /usr/bin/htpasswd –c /usr/local/ngnix/conf/authdb xiaoquan 

上面的命令在nginx的配置文件目錄創建了用戶為xiaoquan的authdb密碼文件,當然你也可以創建的在其他地方,此處nginx配置文件使用比較方便。

上面的命令輸入回車後會得到提示輸入密碼的提示信息,輸入兩次,即可添加成功。

接著修改nginx的配置文件,在某個需要加auth_basic的server配置下添加如下內容:

 
  1. location /admin/ { 
  2. auth_basic "QuanLei Auth."; 
  3. auth_basic_user_file /usr/local/ngnix/conf/authdb; 

最後讓nginx使用最新的配置:

 
  1. /usr/local/ngnix/sbin/nginx -s reload 

補充一下,如果你使用了集群環境,那麽還需要加Proxy_Pass:

 
  1. location /admin/ { 
  2. proxy_pass http://cluster/mgmt/; 
  3. auth_basic "QuanLei Auth."; 
  4. auth_basic_user_file /usr/local/ngnix/conf/authdb; 

Tags:

文章來源:


ads
ads

相關文章
ads

相關文章

ad