Nginx 配置文件/文件夹访问权限

1. 生成密码htpasswd文件(二选一)

什么是 htpasswd ?

htpasswd 是开源 http 服务器 apache httpd 的一个命令工具,用于生成 http 基本认证的密码文件。html

加密方式有什么区别?

MD5:使用MD5加密密码。在Windows, Netware 和TPF上,这是默认的加密方式。nginx

crypt:使用crypt()加密密码。在除了Windows, Netware和TPF的平台上,这是默认的。 虽然它在全部平台上能够为htpasswd所支持, 可是在Windows, Netware和TPF上不能为httpd服务器所支持。数据库

SHA:使用SHA加密密码。 它是为了方便转入或移植到使用LDAP Directory Interchange Format (ldif)的Netscape而设计的。apache

plain:不加密,使用纯文本的密码。虽然在全部平台上 htpasswd 均可以创建这样的密码, 可是httpd后台只在Windows, Netware和TPF上支持纯文本的密码。vim

为何要作成在线的?

若是咱们不使用apache服务器,例如使用nginx等,可能手头没有这个命令行工具,就没法生成密码文件,有了在线版的能够方便服务器管理员使用。服务器

(1) 在线htpasswd生成器app

http://tool.oschina.net/htpasswdtcp

(2) 离线(本地)生成htpasswd工具

a. 经过htpasswd命令生成用户名及对应密码数据库文件。oop

//建立认证信息,wyl 为认证用户名 
[root@bgs-5p173-wangwenting ~]# htpasswd -c /usr/local/nginx/passwd.db wyl  
//输入认证密码 
New password: *******  
//再次输入认证密码 
Re-type new password: ********  
Adding password for user wyl
//修改网站认证数据库权限 
[root@bgs-5p173-wangwenting ~]# chmod 400 /usr/local/nginx/passwd.db  
//修改网站认证数据库属主和属组 
[root@bgs-5p173-wangwenting ~]# chown root:root /usr/local/nginx/passwd.db  
//能够看到经过htpasswd生成的密码为加密格式 
[root@bgs-5p173-wangwenting ~]# cat /usr/local/nginx/passwd.db  
wyl:r5IXRXWSmlBk6

 

2. 配置Nginx主机文件

//主配置文件中http字段中添加如下语句
[root@bgs-5p173-wangwenting ~]# vim /usr/local/nginx/conf/nginx.conf 

user  root;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;


    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;


    server {
        listen       80;
        server_name  localhost;


        location / {
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }


server {
     listen       12171;
     server_name  localhost;

     client_max_body_size    151m;

   location / {
         auth_basic "s1";  #虚拟主机认证命名 
         auth_basic_user_file /usr/local/nginx/passwd.db; #虚拟主机用户名密码认证数据库     
         #proxy_pass http://10.0.0.10:9011;  #nginx 访问
	 root   html;
            index  index.html index.htm; 
}
}


server {
     listen       12172;
     server_name  localhost;

     client_max_body_size    151m;

   location / {
         auth_basic "s1";  #虚拟主机认证命名 
         auth_basic_user_file /usr/local/nginx/passwd.db; #虚拟主机用户名密码认证数据库     
         proxy_pass http://10.0.0.10:8088;  #hadoop 访问
 }
}

 

3. 修改htpasswd文件权限

sudo chown root:www-data htpasswd 
sudo chmod 640 htpasswd

受权失败会致使 服务器500的错误

 

4. 重启Nginx服务器

// 测试重启配置文件是否正确
# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

// 平滑重启
# nginx -s reload

 

5. 访问添加权限限制Web,如图:

相关文章
相关标签/搜索