Nginx为网站目录设置密码保护

 

在Nginx的nginx.conf里面有如下的字段

  1. server 
  2.     { 
  3.         listen 80 default_server; 
  4.         #listen [::]:80 default_server ipv6only=on; 
  5.         server_name www.nenew.net; 
  6.         index index.html index.htm index.php; 
  7.         root  /home/wwwroot/default; 
  8.  
  9.         #error_page   404   /404.html; 
  10.         include enable-php.conf; 
  11.  
  12.         location /nginx_status 
  13.         { 
  14.             stub_status on; 
  15.             access_log   off; 
  16.         } 
  17.  
  18.         location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ 
  19.         { 
  20.             expires      30d; 
  21.         } 
  22.  
  23.         location ~ .*\.(js|css)?$ 
  24.         { 
  25.             expires      12h; 
  26.         } 
  27.  
  28.         location ~ /\. 
  29.         { 
  30.             deny all; 
  31.         } 
  32.  
  33.         access_log  /home/wwwlogs/access.log  access; 
  34.     } 
  35. include vhost/*.conf; 

如果我们想在默认的目录添加密码保护,只保护对目录的访问,也就是登陆这个目录就会输入密码,则我们这样设置

  1. server 
  2.     { 
  3.         listen 80 default_server; 
  4.         #listen [::]:80 default_server ipv6only=on; 
  5.         server_name www.nenew.net; 
  6.         index index.html index.htm index.php; 
  7.         root  /home/wwwroot/default; 
  8.  
  9.         #error_page   404   /404.html; 
  10.         include enable-php.conf; 
  11.  
  12.         location /nginx_status 
  13.         { 
  14.             stub_status on; 
  15.             access_log   off; 
  16.         } 
  17.  
  18.         location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ 
  19.         { 
  20.             expires      30d; 
  21.         } 
  22.  
  23.         location ~ .*\.(js|css)?$ 
  24.         { 
  25.             expires      12h; 
  26.         } 
  27.  
  28.         location ~ /\. 
  29.         { 
  30.             deny all; 
  31.         } 
  32.         location / 
  33.         {        
  34.   auth_basic "Restricted";
  35. auth_basic_user_file pass_file
  36. }
  37.         access_log  /home/wwwlogs/access.log  access; 
  38.     } 
  39. include vhost/*.conf; 

其中pass_file是密码文件的绝对路径,密码文件是由用户名和函数 crypt加密的密码组成,可以使htpasswd -c -d /pass_file  username 来生成。

Leave Your Comments

:wx :k :good :fd :gz more »