最近在搭建ELK,而后ELK的kibana界面想添加一个访问限制,看到kibana有个插件x-pack,原本想用用,发现是收费的,就放弃了,而后就想着想配置下nginx的认证访问来实现简单的访问登录。nginx
nginx的用户认证:算法
首先nginx是必须的,若是没有安装的nginx的安装下nginx.vim
而后咱们须要作的就是编辑配置文件。配置文件路径为服务器
/etc/nginx/conf.d/
咱们在该目录下建立一个以.conf后缀的文件,而后咱们编辑文件的内容vim /etc/nginx/conf.d/nginx_passwd.confide
server { listen 80; //监听端口为80 server_name www.rsyslog.org; //映射到这台服务器的域名 access_log /usr/local/nginx/logs/www1_status.log; location / { proxy_pass http://192.168.40.66:5601 //kibana的默认访问路径 auth_basic "secret"; //虚拟主机认证命名 auth_basic_user_file /usr/local/httpd-tools/nginx_passwd.kibana; //虚拟主机用户名密码认证文件 } }
而后咱们须要使用工具httpd-tools生成用户和密码。工具
首先咱们须要安装咱们的httpd-tools,加密
yum install -y httpd-tools
而后咱们进入到咱们以前设置密码文件的路径目录。spa
mkdir /usr/local/httpd-tools/ && cd !$
而后生成咱们的密码文件插件
htpasswd -c -b nginx_passwd.kibana(密码文件名) test(用户名) test(用户密码)
而后咱们重启咱们的nginx让配置生效。(注意事项:就是在配置密码文件的时候注意一个权限问题,建议直接将密码文件的全部者改成nginx)。命令行
接下来补充以一下咱们的htpasswd命令:
htpasswd命令: -c 建立加密文件; -n 不更新加密文件,只将加密的用户密码显示在屏幕上; -m 默认采用MD5算法进行加密; -d 采用 CRYPT 算法对密码进行加密 -p 不对密码进行加密 ,即明文密码; -s 采用 SHA算法对密码进行加密 -b 在命令行中一并输入用户名和密码而不是根据提示输入密码。 -D 删除指定的用户 建立密码文件而且添加用户, htpasswd -c -b 文件名 用户名 密码 添加用户不建立文件 htpasswd -b 用户名 密码 删除用户和密码 htpasswd -D 文件名 用户名 修改密码 : 就是删除用户而后建立用户 htpasswd -D 文件名 用户名 htpasswd -b 用户名 密码
以上就是咱们的nginx用户认证配置和htpasswd的命令的一些基本讲解。