Consul Web添加访问认证
本文记录通过nginx认证的方式进行访问认证,然后代理consul web访问地址
本文使用操作系统Centos 7.2.1511
一. 关闭防火墙8500端口
输入以下命令关闭防火墙8500端口的开放
1.firewalld服务启动的可以通过firewall-cmd命令关闭端口
# 查看开通的端口
firewall-cmd --list-all
# 删除8500端口
firewall-cmd --zone=public --remove-port=8500/tcp --permanent
# 重新加载规则,使之生效
firewall-cmd --reload
2.firewalld服务未启动的可以通过iptables命令关闭端口
# 查看INPUT链表规则
iptables -nvL INPUT --line-number
# 添加拒绝外部访问8500端口
iptables -I INPUT 1 -p tcp -m tcp -s 0.0.0.0 -d 0.0.0.0 --dport 8500 -j REJECT
# 添加允许内部访问8500端口
iptables -I INPUT 1 -p tcp -m tcp -s 127.0.0.1 -d 0.0.0.0 --dport 8500 -j ACCEPT
二. 生成密码文件
1.有htpasswd命令的可以直接通过命令生成密码文件
# 创建认证信息
# -c 创建文件,若给已有的密码db文件添加用户,不需要次参数
# consul为用户名称
htpasswd -c /usr/local/nginx/conf/passwd.db consul
2.通过在线网站工具生成,在线htpasswd
将生成的结果复制到/usr/local/nginx/conf/passwd.db文件中,注意一个用户认证信息一行
三. 配置nginx.conf
user root;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 85;
# 认证提示名称
auth_basic "Authentication";
auth_basic_user_file conf/consul.db;
location / {
# 代理地址,$host表示获取访问IP,可写为127.0.0.1
proxy_pass http://$host:8500;
#proxy_redirect default;
}
}
include servers/*;
}