生命不息
折腾不止

nginx为网站添加用户认证配置( Basic HTTP authentication)

之前有推荐过一个多服务器的监控探针 serverstatus :《 Serverstatus 安装教程:好用直观简单的多服务器监控系统
不过这个系统并没有带用户认证登陆系统,如果你不想你的这个网站随便什么人都可以访问,想做个限制,最简单的方式就是使用 Basic HTTP authentication 。
效果如图:
HKnR.png

第一步:生成认证文件

printf "91yun:$(openssl passwd -crypt 123456)\n" >> /root/htpasswd

91yun 是用户名

123456 是密码

/root/htpasswd 是认证文件的地址

以上 3 个大家自行根据实际情况修改,认证文件的地址也没有要求

修改 nginx 的网站配置文件

server 块里新增以下代码:

location /
{
auth_basic "nginx basic http test for 91yun.com";
auth_basic_user_file /root/htpasswd;
autoindex on;
}

修改 auth_basic_user_file 为你刚才生成的认证文件的地址

一个完整的 nginx 的网站代码可以参考:
HOSt.png

重新 reload 下 nginx

service nginx reload

再重新访问下看看

赞(0)
未经允许不得转载:91云(91yun.co) » nginx为网站添加用户认证配置( Basic HTTP authentication)

留言 14

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #0

    弄好了。。没事了。。。

    aaa7年前 (2017-06-12)回复
  2. #0

    location /bf {
    autoindex on;
    autoindex_exact_size off;
    autoindex_localtime off;
    auth_basic “23333”;
    auth_basic_user_file /root/htpasswd;
    }
    改了一下,进去后还是500错误,撤掉加密正就能常显示里面的文件目录

    aaa7年前 (2017-06-12)回复
  3. #0

    location /bf/ {
    autoindex on;
    autoindex_exact_size off;
    autoindex_localtime off;
    }
    location /bf/ {
    autoindex on;
    auth_basic “nginx basic http test for xxx.com”;
    auth_basic_user_file /root/htpasswd;
    }

    想开启目录和加密,但是这样配置进bf这个目录后确实有加密了,但是进去后显示500错误,不知道哪里配置错了,求指教

    aaa7年前 (2017-06-12)回复
  4. #0

    密码长度有限制,这个真的安全吗?

    lewisxy7年前 (2017-06-12)回复
  5. #0

    请问一下,如果直接输入二级页面地址,也会要求认证吗?

    如果把location / 改为其他二级目录,是不是就可指定特定页面要认证呢。

    triaqu7年前 (2017-06-12)回复
    • /就是所有文件.如果要特定目录就可以输入特定目录.

      91yun7年前 (2017-06-12)回复
      • 谢谢,刚试了一下,如果是/,直接进子目录也要认证

        triaqu7年前 (2017-06-12)回复
  6. #0

    博主可以转载嘛,会注明转载地址。

    MikuSama7年前 (2017-06-10)回复
    • sure,不用问~

      Michael7年前 (2017-06-10)回复
      • 好的谢谢,写了未经许可不得转载还是要问一下的= =!

        MikuSama7年前 (2017-06-11)回复
    • 可以

      91yun7年前 (2017-06-11)回复
  7. #0

    这个好用,比如探针页面~

    MikuSama7年前 (2017-06-10)回复