近期因nginx做yum源会有目录遍历情况,客户要求加上用户密码验证

nginx配置访问密码,输入用户名和密码才能访问---htpasswd的使用

1. 安装 htpasswd 工具

yum install httpd-tools -y

之前nginx在编译安装时已创建的nginx用户,所以我就用现有的nginx用户省去在创建另外用户的了

useradd -s /sbin/nologin -g nginx -M nginx (无需nginx用户登录shell,-M 不创建用户的HOME目录)


2、设置用户名和密码,并把用户名、密码保存到指定文件中:

在/web/nginx/CentOSX7.5目录下创建mpasswd文件:

利用htpasswd命令添加用户:
[root@host-11 CentOSX7.5]# htpasswd -bc mpasswd nginx ty12387
Adding password for user nginx

在/web/nginx/CentOSX7.5目录下生成一个mpasswd文件,用户名nginx,密码:ty12387,默认采用MD5加密方式。


3、 修改 nginx 配置文件

找到 nginx 配置文件,因为我们对yum源站点开启验证,修改如下:

# cat /web/nginx/vhost/810.conf
    server {
        listen       810;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
##########
            location / {
                root /web/nginx/CentOSX7.5 ;
                autoindex on;
                autoindex_exact_size off; 
                autoindex_localtime on; 
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header REMOTE-HOST $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#新增下面两行
                auth_basic "Please input password"; #这里是验证时的提示信息
                auth_basic_user_file /web/nginx/CentOSX7.5/mpasswd; # 这里是密码文件,可以填写绝对路径
                }
}

保存配置文件,重启nginx服务  

以上都配置无误后,你重新访问你的站点,如果出现需要身份验证的弹窗就说明修改成功了。


4、centos7.5下编辑自己repo文件(nginx这里用的是810端口)

# cat /etc/yum.repos.d/tyy.repo
[NWJUST-Srhel-Repo]
name=JUST-SOFT RedHat7.4X64 Repo
baseurl=http://nginx:[email protected]:810/    //采用用户名和密码的方式连接yum仓库
gpgcheck=0
enabled=1
gpgkey=http://nginx:[email protected]:810/RPM-GPG-KEY-CentOS-7


#gpgkey=http://11.32.16.7:810/GPG-KEY/RPM-GPG-KEY-CentOS-7


yum clean all    //清除缓存

yum list