my blog my blog

Tag: 网站目录密码保护
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.         #error_page   404   /404.html;
  9.         include enable-php.conf;
  10.         location /nginx_status
  11.         {
  12.             stub_status on;
  13.             access_log   off;
  14.         }
  15.         location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
  16.         {
  17.             expires      30d;
  18.         }
  19.         location ~ .*\.(js|css)?$
  20.         {
  21.             expires      12h;
  22.         }
  23.         location ~ /\.
  24.         {
  25.             deny all;
  26.         }
  27.         access_log  /home/wwwlogs/access.log  access;
  28.     }
  29. include vhost/*.conf;
  30. }

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

  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.         #error_page   404   /404.html;
  9.         include enable-php.conf;
  10.         location /nginx_status
  11.         {
  12.             stub_status on;
  13.             access_log   off;
  14.         }
  15.         location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
  16.         {
  17.             expires      30d;
  18.         }
  19.         location ~ .*\.(js|css)?$
  20.         {
  21.             expires      12h;
  22.         }
  23.         location ~ /\.
  24.         {
  25.             deny all;
  26.         }
  27.         location / 
  28.         {        
  29.   auth_basic “Restricted”;
  30. auth_basic_user_file pass_file;
  31. }
  32.         access_log  /home/wwwlogs/access.log  access;
  33.     }
  34. include vhost/*.conf;
  35. }

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