专注做网管的电脑公司
  • 微信公众号
  • 联系我们
  • 客服热线:13726442969
  • 如何在CentOS7上使用HTTPD Tools给Nginx设置访问密码增加安全性

    2019-05-21 11:43:15 1954

    1.安装HTTPD Tools工具包

    这里要使用到一个命令行工具htpassword,此工具可以生成访问密码。此命令是httpd-tools包的一部分,因此第一步是安装此工具包。Centos可以直接使用yum命令进行安装,你也可根据需要选择编译安装:

    [deploy@instance-ea0dh7mn ~]$ sudo yum -y install httpd-tools

    2.使用htpassword命令生成账号信息

    [deploy@instance-ea0dh7mn ~]$ sudo htpasswd -c /usr/local/nginx/conf/passwd test123New password: Re-type new password: Adding password for user test123

    说明:htpasswd生成的密码和关联的用户名将存储在您指定的文件中。密码将被加密,文件名可以是你喜欢的任意名称。本文的账号信息保存在/usr/local/nginx/conf/passwd。这里的test123是用户名,你可以根据需要自行设置成其它用户名。执行命令时会要求你连续输入两次密码。输入成功后,会提示已经为test123这个用户添加了密码。

    我们可以看下最后生成的密码文件的内容:

    [deploy@instance-ea0dh7mn ~]$ cat /usr/local/nginx/conf/passwd test123:$AbP1$Dhl87hIu$BXyCfQ7hiEos1DiqgwEYcZ16

    其中test123就是用户名 ,分号后面就是加密过后的密码。

    3.修改nginx配置文件nginx.conf,将生成的账号文件路劲配置进去

    找到 nginx 配置文件,因为我们要对整个站点开启验证,所以在配置文件中的第一个server修改如下:

    [deploy@instance-ea0dh7mn ~]$ sudo vi /usr/local/nginx/conf/nginx.conf.......server { listen 80; server_namelocalhost; index index.html; root /home/wwwroot/default; #新增下面两行 auth_basic "My Server"; #这里服务器的提示信息,可以随意设置 auth_basic_user_file /usr/local/nginx/conf/passwd; #这里是加密文件路劲(推荐) #auth_basic_user_file passwd; 也可以使用此种相对路径的方式,前提是passwd和nginx.conf文件在同一个目录下 location /{ ....... }}.......

    4.重启nginx

    [deploy@instance-ea0dh7mn ~]$ ./nginx -t#检查配置文件是否正确nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful[deploy@instance-ea0dh7mn ~]$ ./nginx -s reload

    5.访问站点进行测试
    爱土壤电脑
    如果出现上面的的弹窗就说明一切配置完成

    爱土壤电脑
    如果不输入账号信息点击取消就会出现401 Authorization Required的提示信息。

    这样就完成了Nginx资源访问权限设置。