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

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

  • 1、 html目录下新建 403page.html文件
  • 2、方式1,仅允许白名单内IP访问
  • 3、方式2,允许白名单内IP 或者 绑定的域名进行访问
  • 4、实际拦截效果图
  • 5、其他内容

1、 html目录下新建 403page.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 - [email protected]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 Forbiddenins> <b>Not allowed to visit this websiteb>p>
<p>This website only allows users inside the network to visit.p>
<p>We are sorry for the inconvenience.p>
<p><ins>© 2021 <a href="#1">[email protected] 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、实际拦截效果图

openresty nginx 设置网络白名单进行nacos站点访问控制_第1张图片

5、其他内容

If判断条件

#1、正则表达式匹配:

==:等值比较;

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

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

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

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

 

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

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

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

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

-x,  !-x:判断指定路径的文件是否存在且可执行;

你可能感兴趣的:(系统运维,nginx,html)