目的:prometheus开放的端口是9090,希望只能通过nginx的ip访问该端口
1、生成auth验证密码文件
mkdir /etc/nginx/auth
yum -y install httpd-tools
htpasswd -c prometheus-pwd admin
2、nginx配置认证(nginx机器:172.62.0.7)
nginx安装:Linux 下安装Nginx两种方法- yum安装_在电脑前深思的博客-CSDN博客_linux yum安装nginx
server {
listen 0.0.0.0:19090;
location / {
proxy_pass http://172.62.0.8:9090/;
auth_basic "admin";
auth_basic_user_file "/etc/nginx/auth/pmetheus-pwd";
}
}
3、只允许本机ip访问某个端口
iptables -A INPUT -s 172.62.0.7 -p tcp --dport 9090 -j ACCEPT
iptables -A INPUT -p tcp --dport 9090 -j REJECT
iptables-save
systemctl restart iptables
或者(-I 是插入,-A是追加)
iptables -I INPUT -p tcp --dport 9090 -j REJECT
iptables -I INPUT -s 172.62.0.7 -p tcp --dport 9090 -j ACCEPT
iptables-save
systemctl restart iptables
其中保存的iptables配置目录为【/etc/sysconfig/iptables】
使用iptables -L -n可以查看规则,iptables -D input 1 删除规则
如果restart后iptables不生效可以直接编辑iptables配置文件【/etc/sysconfig/iptables】
-A INPUT -s 172.62.0.7 -p tcp --dport 9090 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 9090 -j REJECT
注意iptables的规则执行是有顺序的,从上到下,如果两行互换则无法成功访问9090端口