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

SpringbBoot nginx代理获取用户真实IP

为了演示多级代理场景,我们分配了以下服务器资源:

  • 10.1.9.98:充当客户端
  • 10.0.3.137:一级代理
  • 10.0.4.105:二级代理
  • 10.0.4.129:三级代理
  • 10.0.4.120:服务器端

各级代理配置

以下是各级代理的基本配置示例(仅展示关键部分):

一级代理(10.0.3.137)配置

server {listen 80;location / {proxy_pass http://10.0.4.105;  # 转发请求到二级代理proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Real-IP $remote_addr;}
}

二级代理(10.0.4.105)配置
与一级代理类似,只是转发目标改为三级代理:

server {listen 80;location / {proxy_pass http://10.0.4.129;  # 转发请求到三级代理proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Real-IP $remote_addr;}
}

三级代理(10.0.4.129)配置
三级代理直接转发请求到服务器端:

server {listen 80;location / {proxy_pass http://10.0.4.120;  # 转发请求到服务器端proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Real-IP $remote_addr;}
}

服务器端(10.0.4.120)配置
服务器端记录客户端的真实IP地址:

server {listen       80;server_name  localhost;charset utf-8;location / {root   /home/ruoyi/projects/ruoyi-ui;try_files $uri $uri/ /index.html;index  index.html index.htm;}location /prod-api/ {proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://localhost:8080/;}# springdoc proxylocation ~ ^/v3/api-docs/(.*) {proxy_pass http://localhost:8080/v3/api-docs/$1;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}

在以上配置下,当客户端10.1.9.98发起请求时,X-Forwarded-For头信息包含了客户端10.1.9.98、一级代理10.0.3.137和二级代理10.0.4.105的IP地址。“10.1.9.98, 10.0.3.137, 10.0.4.105”

总结与注意事项

在这里插入图片描述

http://www.xdnf.cn/news/451423.html

相关文章:

  • 3337|3335. 字符串转换后的长度 I(||)
  • leetcode2934. 最大化数组末位元素的最少操作次数-medium
  • 练习小项目:倒数日小工具
  • Windows软件插件-写wav
  • 【Embedding Models】嵌入模型选择指南
  • 蓝卓入选2025宁波最具潜力新品牌TOP10
  • 数据库字段唯一性修复指南:从设计缺陷到规范实现
  • 安装windows版本的nacos
  • 总结下Jackson 中的JsonNode,ObjectNode,ArrayNode的方法
  • 时代推动建筑管理变革,楼宇自控系统成现代建筑管理必由之路
  • 数据结构·字典树
  • 每周靶点:TREM2、DLL3及文献分享
  • 代码随想录算法训练营第60期第三十六天打卡
  • W1电力线载波通信技术
  • Linux 常用命令 -hostnamectl【主机名控制】
  • Mixup
  • 【RabbitMQ】发布确认机制的具体实现
  • 3Dblox
  • 【Python3教程】Python3基础篇之输入与输出
  • 车载网关--- 职责边界划分与功能解耦设计
  • 安卓基础(Bitmap)
  • 致远OA项目管理应用包简介【附百度网盘链接】
  • scratch基础-外观模块
  • 基于EFISH-SCB-RK3576/SAIL-RK3576的智能安检机技术方案‌
  • 基于SpringBoot+Vue的房屋租赁管理系统源码包(完整版)开发实战
  • matlab提取脑电数据的五种频域特征指标数值
  • 电脑软件出现应用程序未响应
  • JJJ:linux ida
  • 深入掌握 Python 切片操作:解锁数据处理的高效密码
  • hadoop知识点