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

摘要:1. 生成密码htpasswd文件(二选一) 什么是 htpasswd ? htpasswd 是开源 http 服务器 apache httpd 的一个命令工具,用于生成 http 基本认证的密码文件。 加密方式有什么区别? MD5:使用MD5加密密码。在Windows, Netware 和TPF上,这是默认的加密方式。 crypt:使用crypt()加密密码。在除

1. 生成密码htpasswd文件(二选一) 什么是 htpasswd ?

002UASMrzy7605pjKJv15&690.jpg

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

加密方式有什么区别?

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

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

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

plain:不加密,使用纯文本的密码。虽然在所有平台上 htpasswd 都可以建立这样的密码, 但是httpd后台只在Windows, Netware和TPF上支持纯文本的密码。

为什么要做成在线的?

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

(1) 在线htpasswd生成器

 

 

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

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

//创建认证信息,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,如图: