文档章节

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

Nicko_Ch
 Nicko_Ch
发布于 2017/05/10 14:08
字数 736
阅读 137
收藏 0

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

什么是 htpasswd ?

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生成器

http://tool.oschina.net/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,如图:

© 著作权归作者所有

Nicko_Ch
粉丝 0
博文 2
码字总数 814
作品 0
佛山
私信 提问
nginx中出现403forbidden错误

nginx “403 Forbidden” 错误 出现这个错误一般是因为以下原因: 网站禁止特定的用户访问所有内容,例:网站屏蔽某个ip访问。 访问禁止目录浏览的目录,例:设置autoindex off后访问目录。 ...

河图再现
2018/06/21
0
0
Linux下Nginx无权访问文件问题

nginx version: nginx/1.14.0 问题说明 当前版本下nginx安装后默认配置文件中设置,表示nginx运行用户。 我们正常思维都只是修改当前用户下的文件夹权限,所以会导致确定当前用户对文件夹权限...

歇歇
2018/08/02
0
0
nginx+Tomcat实现动静分离架构

最近新部署了一个项目jlj-cms-erp-web,要求使用nginx+Tomcat将静态页面和动态的请求分开处理,减轻Tomcat服务器的压力 在部署项目的这台机器上(192.168.1.110)并没有nginx,所以还需要将这...

itzhongxin
2018/06/26
0
0
解决 Apache服务器下,访问出现"You don't have permission to …"

错误如下: 分析: 这个异常是因为Apache没有权限去访问目标文件导致的,所以要设置访问权限。 1. 在linux下的解决方法(这个办法我没有试过,但是我用过linux下的nginx,设置过文件权限,就...

issac宝华
2016/05/12
136
2
Nginx初探(2)——配置虚拟主机

在Nginx初探(1)——搭建环境中,我们已经在Linux上安装了Nginx环境,本章将讲解如何在一台服务器上配置多个虚拟主机。 一、引入 我们知道,要想在一台服务器上配置多个网站,服务器有两种方...

yuanlaijike
2018/03/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

etcd 在超大规模数据场景下的性能优化

作者 | 阿里云智能事业部高级开发工程师 陈星宇(宇慕) 概述 etcd是一个开源的分布式的kv存储系统, 最近刚被cncf列为沙箱孵化项目。etcd的应用场景很广,很多地方都用到了它,例如kubernete...

zhaowei121
29分钟前
2
0
MYSQL主从介绍

MYSQL软件概念 MYSQL是一款数据库,关系型数据库系统; MYSQL主要用于存放:员工姓名、身份证ID、商城订单及金额、销售业绩及报告,学生考试成绩、网站帖子、论坛用户信息等; MYSQL在WEB架构...

寰宇01
32分钟前
2
0
org.apache.cxf.interceptor.Fault: null

出现这个异常的原因:json字符串为null 所以会出现这个错误。需要加上条件判断。 如果不是这个原因,可以参考: https://blog.csdn.net/rshw123456/article/details/8001677...

嘿嘿嘿IT
32分钟前
1
0
gradle控制so库的输出位置

gradle.taskGraph.beforeTask { task -> String abi = "lib/armeabi/" def TASK_NAME = "transformNativeLibsWithStripDebugSymbolFor" String buildType = "debug" //S......

Gemini-Lin
32分钟前
3
0
AndroidL 开机展示Keyguard锁屏机制初探

目录 目录 锁屏时序图 开机启动到PhoneWindowManager的systemReady方法 锁屏加载流程 PhoneWindowManager KeyguardServiceDelegate KeyguardServiceWrapper KeyguardService KeyguardViewMe......

天王盖地虎626
35分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部