Nginx下配置Http基本身份驗證目錄

一直在Apache下使用HTTP基本auth(.htpasswd)來保護網站的某些目錄的訪問,現在VPS上換成Nginx同樣需要保護一下。

Nginx下的配置也挺方便的,我們可以沿用由Apache的htpasswd模塊生成的.htpasswd文件作爲密碼文件。注意,nginx的http auth basic的密碼是用crypt(3)加密的,而apache是​​md5加密。所以生成時:

  1. / usr / local / apache2 / bin / htpasswd -c -d pass_file用戶名

  2. #回車輸入密碼,-c表示生成文件,-d根據crypt加密。

對於lnmp用戶,一般不安裝apache,說下怎麼在nginx下生成htpasswd

下載這個python文件:http : //trac.edgewall.org/export/10770/trunk/contrib/htpasswd.py  (nginx Wiki裏推薦的)

運行示例

  1. chmod 777 htpasswd.py

  2. ./htpasswd.py -c -b htpasswd用戶名密碼

  3. #-c爲生成文件htpasswd爲文件名

 


我們將這個htpasswd文件放到nginx / conf下,記得chmod 400 htpasswd來保護一下。

然後修改nginx.conf:

 

  1. 服務器{

  2. server_name d8.neolee.com;

  3. root / var /www/d8.neolee.com;

  4. 包括 / etc / nginx / fastcgi_php;

  5. 位置 / {

  6. auth_basic “請輸入密碼” ;

  7. auth_basic_user_file / usr / local / nginx / conf / htpasswd;

  8. 索引index.php;

  9. 如果(!-e $ request_filename){

  10. 最後重寫^(。*)$ /index.php;

  11. }

  12. }

  13. }

加入了

  1. auth_basic “請輸入密碼” ;

  2. auth_basic_user_file / usr / local / nginx / conf / htpasswd;

重啓nginx即可。
 

來源:http : //neolee.com/web/nginx-http-basic-auth/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章