openresty nginx 设置网络白名单进行nacos站点访问控制

1、 html目录下新建 403page.html文件

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="initial-scale=1, minimum-scale=1, width=device-width" />
<title>Not allowed to visit this website - kuojungwong@sina.cn</title>
<style> *{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:480px;min-height:180px;padding:30px 0 15px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}@media screen and (max-width:772px){body{background:0;margin-top:0;max-width:none;padding-right:0}}</style>
</head>
<body>
<p><ins>403 禁止访问</ins> <b>为避免系统异常,你的IP不在服务器访问白名单内,<br>(127|154)<br>请联系项目小组成员kuojungwong进行访问修改</b></p>
<p><ins>403 Forbidden</ins> <b>Not allowed to visit this website</b></p>
<p>This website only allows users inside the network to visit.</p>
<p>We are sorry for the inconvenience.</p>
<p><ins>&copy; 2021 <a href="#1">kuojungwong@sina.cn </a></ins></p>
</body>
</html>

2、方式1,仅允许白名单内IP访问

  location /nacos/ {
    if ($remote_addr !~ ^(10.0.0.155|127.0.0.1) )) {return 403;}
    proxy_pass http://nacosserv;
  }
  error_page 403 /403page.html;
  location = /403page.html{
      root html;
  }

3、方式2,允许白名单内IP 或者 绑定的域名进行访问

首先是伪代码(即不被nginx支持),写在这里只是为了方便理解:
and or 都不被支持

if ($remote_addr ~ "^(12.34|56.78)" || $host = "2021.kuojungwong.cococ") {
    return 403;
}

实际代码为使用变量进行控制


  location /nacos/ {
    set $flag 0;
    if ($remote_addr !~ ^(10.0.0.155|127.0.0.1)) {set $flag 1;}
    if ($host = "2021.kuojungwong.cococ") {set $flag 0;}
    if ($flag = 0) {return 403;}
    proxy_pass http://nacosserv;
  }
  error_page 403 /403page.html;
  location = /403page.html{
      root html;
  }

4、实际拦截效果图

在这里插入图片描述

5、其他内容

If判断条件

#1、正则表达式匹配:

==:等值比较;

~:判断匹配与否时区分字符大小写;

~*:判断匹配与否时不区分字符大小写;

!~:与指定正则表达式模式不匹配时返回“真”,判断匹配与否时区分字符大小写;

!~*:与指定正则表达式模式不匹配时返回“真”,判断匹配与否时不区分字符大小写;

 

#2、文件及目录匹配判断:

-f,  !-f:判断指定的路径是否为存在且为文件;

-d,  !-d:判断指定的路径是否为存在且为目录;

-e,  !-e:判断指定的路径是否存在,文件或目录均可;

-x,  !-x:判断指定路径的文件是否存在且可执行;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值