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中阻止来自特定的IP地址访问的操作指南

    在Nginx中阻止来自特定的IP地址访问的操作指南

    在网络安全方面,有时你可能需要限制特定国家或地区的访问权限,本文将介绍如何使用 Nginx 配置文件来阻止来自特定国家或地区的 IP 地址访问你的网站,需要的朋友可以参考下
    2024-07-07
  • nginx使用内置模块配置限速限流的方法实例

    nginx使用内置模块配置限速限流的方法实例

    Nginx现在已经是最火的负载均衡之一,在流量陡增的互联网面前,接口限流也是很有必要的,尤其是针对高并发的场景,下面这篇文章主要给大家介绍了关于nginx使用内置模块配置限速限流的相关资料,需要的朋友可以参考下
    2022-05-05
  • Nginx安装后常用功能配置基础篇

    Nginx安装后常用功能配置基础篇

    这篇文章主要介绍了Nginx安装后常用的功能配置,为了在使用中更高效简洁,Nginx安装后通常会进行一些常用的配置,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2022-03-03
  • 使用Bash脚本和Logrotate实现Nginx日志切割的方法

    使用Bash脚本和Logrotate实现Nginx日志切割的方法

    Logrotate是一个Linux系统上用来管理日志文件的工具,它可以定期轮转日志文件、压缩旧的日志文件以及删除过期的日志文件,这篇文章主要介绍了使用Bash脚本和Logrotate实现Nginx日志切割,需要的朋友可以参考下
    2024-05-05
  • nginx反向代理配置400,404,502等状态的自定义页面问题

    nginx反向代理配置400,404,502等状态的自定义页面问题

    这篇文章主要介绍了nginx反向代理配置400,404,502等状态的自定义页面问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Nginx反向代理多个服务器的实现方法

    Nginx反向代理多个服务器的实现方法

    这篇文章主要介绍了Nginx反向代理多个服务器的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 深入浅析Nginx虚拟主机

    深入浅析Nginx虚拟主机

    对于Nginx而言,每一个虚拟主机相当于一个在同一台服务器中却相互独立的站点,从而实现一台主机对外提供多个 web 服务,每个虚拟主机之间是独立的,互不影响的。这篇文章主要介绍了Nginx虚拟主机的相关知识,需要的朋友可以参考下
    2020-07-07
  • NGINX服务器配置404错误页面转向的方法

    NGINX服务器配置404错误页面转向的方法

    这篇文章主要为大家详细介绍了NGINX服务器配置404错误页面转向的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • 详解Keepalived+Nginx实现高可用(HA)

    详解Keepalived+Nginx实现高可用(HA)

    这篇文章主要介绍了详解Keepalived+Nginx实现高可用(HA),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • Nginx实现动态内容缓存的示例代码

    Nginx实现动态内容缓存的示例代码

    在Nginx中实现动态内容的缓存可以显著提高性能,减少后端服务器的负载,本文就来介绍一下Nginx动态内容缓存实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-11-11

最新评论