当前位置: 首页 > news >正文

Nginx--使用CDN后拉黑客户端真实IP

原文网址:Nginx--使用CDN后拉黑客户端真实IP-CSDN博客

简介

本文介绍Nginx使用CDN后拉黑客户端真实IP。

不使用CDN时,拉黑IP的方法见:Nginx--拉黑IP-CSDN博客

若使用了CDN,来源IP总是CDN的IP,无法用拉黑IP的方式限制用户IP访问。本文即介绍使用了CDN后,如何拉黑用户真实IP。

1.取出用户真实IP

1、在 Nginx 的 http 模块内加入如下配置:($clientRealIP 就是用户真实 IP 了)

# 获取用户真实IP,并赋值给变量$clientRealIP map $http_x_forwarded_for $clientRealIp { "" $remote_addr; ~^(?P<firstAddr>[0-9\.]+),?.*$ $firstAddr; }

代码含义

  • 如果没用CDN,那就取$remote_addr(连接的IP地址)
  • 若用了CDN,则取 $http_x_forwarded_for 的第一个值

详解

当一个 CDN 把用户的请求转到后面服务器时,CDN 会在 Http 的头中加入一个记录
X-Forwarded-For : 用户 IP, 代理服务器 IP。如果中间经历了不止一个代理服务器,这个记录会是这样:X-Forwarded-For : 用户 IP, 代理服务器 1-IP, 代理服务器 2-IP, 代理服务器 3-IP, ….

用户的真实 IP 在第一个位置, 后面会跟一串中间代理服务器的 IP 地址。

2. 写限制访问代码

判断 $clientRealIP,实现限制访问。

新建ipblack.conf文件(文件名任意),内容如下:

#如果真实IP为 100.100.100.100或222.222.222.222,那么返回403 if ($clientRealIp ~* "100.100.100.100|222.222.222.222") { return 403; break; #如果你的nginx安装了echo模块,还能如下输出内容(不兼容返回403,可以用200吧)! #add_header Content-Type text/plain; #echo "Too frequently"; }

我把这个上传到 Nginx 的 conf/conf.d 文件夹

3.启用限制代码

在想启用的网站的server 模块中引入这个配置文件:

server { include conf.d/ipblack.conf; # 其他配置 }

4.重新加载Nginx配置

见此文最后:Docker Compose--安装Nginx--方法/实例-CSDN博客

http://www.jsqmd.com/news/507466/

相关文章:

  • 实战案例:用Llama Factory为电商场景微调文案生成模型,效果对比展示
  • 2026年3月环境安全检测产品推荐排行:五家厂商客观对比与深度评测分析 - 品牌推荐
  • 优化MATLAB中quiver函数绘制箭头图或矢量图(2)-MATLAB开发
  • Ansys Fluent 多相流模拟,核心供应商推荐 - 品牌2025
  • Blender PSK/PSA插件:游戏开发者的3D资产桥梁
  • Qwen-Image-2512-SDNQ与GitHub Actions集成:自动化图片生成流水线
  • Linux操作系统:进程间关系
  • Qwen3-ForcedAligner-0.6B GPU部署实战:解决CUDA out of memory常见报错
  • 为什么是你来做?面试中犀利问题的底层逻辑是什么和标准回答模版
  • 便携式生理信号采集系统开发小结
  • C++map容器
  • GitHub_Trending/we/WeChatMsg架构解析:核心组件设计与交互逻辑
  • Qwen3-32B-Chat开源模型对比评测:Llama3-70B/Qwen3-32B/DeepSeek-V3推理效率PK
  • C++ stack 容器适配器-栈
  • FPGA动态部分重配置技术的三大实现方案对比
  • Rancher容器网络深度剖析:从基础概念到高级配置
  • 别再傻傻分不清了!从摄像头RAW到屏幕RGB,图像格式转换保姆级指南
  • 大小端的计算公式
  • Linux网络编程:TCP初体验
  • Qt 线程
  • CosyVoice 实战部署全攻略:从云端实例到本地服务,5步打造专属语音克隆应用
  • python中class与C++class的区别和联系
  • 终极指南:MS-DOS批处理变量使用与早期脚本参数传递技巧
  • 基频检测算法总结
  • Zig核心特性深度解析:为何它能替代C成为系统编程新宠
  • 如何轻松实现微信聊天记录从JSON到PDF的完整转换:GitHub_Trending/we/WeChatMsg终极指南
  • 深入解析Python的glob.glob()函数:高效递归匹配文件与目录的实战技巧
  • 海康威视DS-2CD2T2HY-LP1刷机固件包|含专用刷机工具+通用版固件|支持强刷救砖|终身可重复使用
  • Navicat Premium连接Oracle 11g保姆级教程(附instantclient配置避坑指南)
  • BackInTime 开源项目安装与使用指南