某些情况下有些资源需要一个基本的认证才能让用户访问。又不太想开发一个认证流程的东东怎么办呢?
解决办法:通过nginx 配置一个基础的http用户密码认证来解决这个问题
这里不详细介绍如何安装,提供centos一句话安装命令吧
yum install -y nginx
nginx认证文件,该文件主要是存储nginx的认证用户密码信息,其文件格式如下:
admin:r5IXRXWSmlBk6
密码应该使用crypt()函数加密。可以用Apache HTTP Server发行包中的htpasswd命令或者openssl passwd来创建此类文件。
第一种是使用Apache的htpasswd工具创建(感觉很鸡肋都有nginx了我还安装啥Apache)
/opt/apache/bin/htpasswd -bdc /etc/nginx/conf.d/htpasswd admin 12345
命令解释
/opt/apache/bin/htpasswd htpasswd工具路径
/etc/nginx/conf.d/htpasswd 生成认证文件路径
admin 12345 用户名及密码
第二种使用openssl创建认证文件(由于每个Linux服务器基本都有SSH服务,openssl也就有啦,靠谱)
[root@localhost cert]# openssl passwd 123456
d7FH6kfhAIIFA
[root@localhost cert]# echo 'admin:d7FH6kfhAIIFA' > /etc/nginx/cert/passwd.db
[root@localhost cert]# cat passwd.db
admin:d7FH6kfhAIIFA
[root@localhost cert]#
随便找一个nginx的虚拟访问路径进行配置吧
location / {#对所有地址进行负载均衡
auth_basic "监控服务";#这里是认证输入用户密码时候弹出的标题
auth_basic_user_file cert/passwd.db;#这里配置的是密码文件存放路径,相对路径为相对nginx根目录
proxy_pass http://tomcats-monitor/;
}#end location
主要配置为:auth_basic 、auth_basic_user_file
nginx -s reload
再访问资源试试?
http://blog.xqlee.com/article/535.html