nginx 拦截指定ip访问指定url的实现示例

 更新时间:2024年12月22日 08:35:32   作者:筏镜  
本文主要介绍了nginx 拦截指定ip访问指定url的实现示例,使用$http_x_forwarded_for变量来获取客户端的真实IP地址,感兴趣的可以了解一下

这里需要注意的是一定要用$http_x_forwarded_for 这个变量

upstream myapp1 {  # 定义一个名为myapp1的服务器组  
        server backend1.example.com weight=5;  # 添加一个服务器,并设置权重为5  
        server backend2.example.com;  # 添加另一个服务器,权重默认为1  
        server backend3.example.com down;  # 将此服务器标记为down,不参与负载均衡  
        server backup1.example.com backup;  # 将此服务器作为备份服务器  
    }  

 location ^~ /api/ {
        #10\.182\.(?!25\.|26\.)[0-9.]+
       if ($http_x_forwarded_for ~ "^10\.182\.(25\.|26\.)[0-9.]+") {
          # 如果是,返回403禁止访问
          return 403;
      }
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_pass myapp1;
    }

禁止指定网站来访:

if ($http_referer ~* "要拦截的域名") {
    return 301 要跳转的域名;
}

限制指定目录扩展名后缀

location ~ ^/images/.*\.(php|php5|sh|pl|py)$
{
deny all;
}

location ~ ^/static/.*\.(php|php5|sh|pl|py)$
{
deny all;
}

禁止直接访问txt和doc文件

location ~* \.(txt|doc)$ {
if (-f $request_filename) {
root /data/www/www;
rewrite ^(.*) https://www.itbulu.com/ break;  #可以重定向到某个URL;
}
}
location ~* \.(txt|doc)$ {
root /data/www/www;
deny all;
}

禁止访问文件和目录

#禁止访问的文件或目录 
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md) { 
return 404; 
}

排除某个目录不受限制

location ~ \.well-known{ 
allow all; 
}

禁止访问单个目录的命令

 location ~ ^/(static)/ {
deny all;
}

location ~ ^/static {
deny all;
}

禁止访问多个目录的配置

location ~ ^/(static|js) {
deny all;
}

禁止目录让外界访问

location ~ ^/mysql_loging/ {
allow 192.168.1.4;
deny all;
}

location ~ .*\.(php|php5)?$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
}

说明:该配置只允许192.168.1.4IP访问mysql_loging目录

限制IP和IP段

location / {
deny 192.168.0.4;
allow 192.168.1.0/16;
allow 10.0.0.0/24;
deny all;
}

说明:此限制是对某些IP做整个网站的限制访问。

非指定域名访问跳转

if ($host !~ ^www/.itbulu/.com$) {
rewrite ^(.*) http://www.baidu.com$1 permanent;
}

到此这篇关于nginx 拦截指定ip访问指定url的实现示例的文章就介绍到这了,更多相关nginx拦截指定ip内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • nginx的keepalive相关参数使用源码解读

    nginx的keepalive相关参数使用源码解读

    这篇文章主要为大家介绍了nginx的keepalive相关参数使用源码解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • Nginx 日志轮转的实现示例

    Nginx 日志轮转的实现示例

    Nginx日志轮转是监控和调试Web服务器的重要工具,通过定期归档、压缩和清理日志文件,可以节省磁盘空间、提高性能并方便故障排查,下面就来介绍一下
    2024-12-12
  • 详解Nginx服务器中map模块的配置与使用

    详解Nginx服务器中map模块的配置与使用

    这篇文章主要介绍了Nginx服务器中map模块的配置与使用,文中同时给出了ngx_http_map_module模块的map命令用于制作服务器限速白名单的示例,需要的朋友可以参考下
    2016-01-01
  • 在Nginx中实现动态封禁IP的三种主流方案

    在Nginx中实现动态封禁IP的三种主流方案

    在运维和安全实践中,经常需要根据实时情况封禁某些恶意 IP,但传统的Nginx 配置是静态的,一旦写死deny 1.2.3.4;,就必须重启或重载服务才能生效,那么,有没有办法实现动态、实时、可编程的IP封禁呢,所以本文给大家介绍了在Nginx中实现动态封禁IP的三种主流方案
    2025-11-11
  • Nginx实现接口复制的示例代码

    Nginx实现接口复制的示例代码

    本文主要介绍了使用Nginx的mirror指令和Lua脚本实现接口流复制,方便将请求同时转发到多个后端服务器,具有一定的参考价值,感兴趣的可以了解一下
    2025-01-01
  • Nginx列出目录和文件并用密码控制访问权限配置方法

    Nginx列出目录和文件并用密码控制访问权限配置方法

    这篇文章主要介绍了Nginx列出目录和文件并用密码控制访问权限配置方法,本文给出了详细的安装配置步骤,需要的朋友可以参考下
    2015-07-07
  • nginx长连接与短连接性能对比分析

    nginx长连接与短连接性能对比分析

    文章对比了Nginx的长连接和短连接性能,通过JMeter进行压测,结果显示长连接模式下响应时间减少,TPS提升,但错误率上升,主要因Windows系统TCP端口资源释放延迟,长连接适用于频繁请求场景
    2025-12-12
  • Nginx反向代理和负载均衡的安全加固方案

    Nginx反向代理和负载均衡的安全加固方案

    这篇文章给大家介绍了Nginx反向代理和负载均衡的安全加固方案,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2026-03-03
  • Nginx 配置根据请求IP末段进行分流的方法

    Nginx 配置根据请求IP末段进行分流的方法

    这篇文章主要介绍了Nginx 配置根据请求IP末段进行分流的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • 详解nginx配置location总结及rewrite规则写法

    详解nginx配置location总结及rewrite规则写法

    本篇文章主要介绍了详解nginx配置location总结及rewrite规则写法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02

最新评论