nginx反向代理后实现nginx和apache两种web服务器能够记录客户端的真实IP地址
一.构建环境
二.配置反向代理
1.基于源码安装的nginx环境下修改nginx.conf(设备1)
2.通过windows powershell进行修改hosts文件并测试
3.设备2和设备3上查看日志,可以看到访问来源都是代理服务器(2.190)而不是真实客户端地址
三.实现两台web服务器记录真实客户端IP地址
1.Nginx代理服务器配置(设备1)
2.Nginx类的web服务器(设备2)配置
(1)修改nginx.conf文件,在index下方继续添加以下内容
(2)浏览器访问后设备2查看日志
(3)设备3做域名映射后访问设备2查看日志以进一步确认
3.Apache类的web服务器(设备3)配置
(1)修改httpd.conf文件
(2)把原本这里的第一行LogFormat换成这个
(3)浏览器访问设备3进行测试
一.构建环境
三台设备,设备1(2.190)部署nginx环境,设备2(2.191)部署nginx,设备3(2.193)apache环境,保证都有区别的web页面内容
二.配置反向代理
1.基于源码安装的nginx环境下修改nginx.conf(设备1)
[root@localhost conf]# pwd
/usr/local/src/nginx-1.22.0/conf
[root@localhost conf]# vim nginx.conf
worker_processes 1;
events {worker_connections 1024;
}
http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;error_log /usr/local/src/nginx-1.22.0/logs/error.log;access_log /usr/local/src/nginx-1.22.0/logs/access.log;server {listen 80;server_name www.aabb.com;location / {proxy_pass http://192.168.2.191;}} server {listen 80;server_name www.llss.com;location / {proxy_pass http://192.168.2.193;}}
}
2.通过windows powershell进行修改hosts文件并测试
PS C:\WINDOWS\system32> cd .\drivers\etc\PS C:\WINDOWS\system32\drivers\etc> notepad .\hostsPS C:\WINDOWS\system32\drivers\etc>

3.设备2和设备3上查看日志,可以看到访问来源都是代理服务器(2.190)而不是真实客户端地址

三.实现两台web服务器记录真实客户端IP地址
1.Nginx代理服务器配置(设备1)
在proxy_pass后继续添加以下内容
server {listen 80;server_name www.aabb.com;location / {proxy_pass http://192.168.2.191;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_set_header X-Forwarded-Proto $scheme;}}server {listen 80;server_name www.llss.com;location / {proxy_pass http://192.168.2.193;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $http_x_forwarded_for;}}
2.Nginx类的web服务器(设备2)配置
(1)修改nginx.conf文件,在index下方继续添加以下内容
server {listen 80;server_name localhost;access_log logs/access.log;location / {root /usr/local/src/nginx-1.22.0/html;index index.html index.htm;set_real_ip_from 192.168.2.190; #此处填写你的nginx代理服务器的地址real_ip_header X-Forwarded-For;real_ip_recursive on;}
(2)浏览器访问后设备2查看日志
通过浏览器访问传回虚拟机的这个访问地址是windows上的虚拟网卡VMnet8的地址

(3)设备3做域名映射后访问设备2查看日志以进一步确认
#修改/etc/hosts文件后查看
[root@localhost ~]# tail -1 /etc/hosts
192.168.2.190 www.aabb.com
[root@localhost ~]# curl www.aabb.com
191

3.Apache类的web服务器(设备3)配置
(1)修改httpd.conf文件
[root@localhost conf]# pwd
/etc/httpd/conf
[root@localhost conf]# vim httpd.conf

(2)把原本这里的第一行LogFormat换成这个
LogFormat "%{X-FORWARDED-FOR}i %h %l %u %t %r %>s %b %{Referer}i %{User-Agent}i" combined
[root@localhost conf]# systemctl restart httpd.service
(3)浏览器访问设备3进行测试
返回了真实地址和nginx代理服务器的真实地址

相关文章:
nginx反向代理后实现nginx和apache两种web服务器能够记录客户端的真实IP地址
一.构建环境 二.配置反向代理 1.基于源码安装的nginx环境下修改nginx.conf(设备1) 2.通过windows powershell进行修改hosts文件并测试 3.设备2和设备3上查看日志,可以看到访问来源都是代理服务器(2.190)而不是真实…...
【仿写tomcat】四、解析http请求信息,响应给前端,HttpServletRequest、HttpServletResponse的简单实现
思考 在解析请求之前我们要思考一个问题,我们解析的是其中的哪些内容? 对于最基本的实现,当然是请求类型,请求的url以及请求参数,我们可以根据请求的类型作出对应的处理,通过url在我们的mapstore中找到se…...
FL Studio21.1中文完整版Win/Mac
FL Studio All Plugins Edition【中文完整版 Win/Mac】适合音乐制作人/工作室使用,全套插件!(20.9新增Vintage Chorus,Pitch Shifter变调插件)FL Studio是超多顶级音乐人的启蒙首选!包括百大DJ冠军Martin Garrix&…...
基于Mysql+Vue+Django的协同过滤和内容推荐算法的智能音乐推荐系统——深度学习算法应用(含全部工程源码)+数据集
目录 前言总体设计系统整体结构图系统流程图 运行环境Python 环境MySQL环境VUE环境 模块实现1. 数据请求和储存2. 数据处理计算歌曲、歌手、用户相似度计算用户推荐集 3. 数据存储与后台4. 数据展示 系统测试工程源代码下载其它资料下载 前言 本项目以丰富的网易云音乐数据为基…...
Python Web开发 Django 简介
今天来为大家介绍 Python 另一个 Web 开发框架 Django,它是一个基于 Python 定制的开源 Web 应用框架,最早源于一个在线新闻 Web 网站,后于2005年开源。Django 的功能大而全,它提供的一站式解决的思路,能让开发者不用在…...
HAproxy搭建web集群
目录 一、HAproxy 概述 二、HAproxy 主要特性 三、HAproxy 负载均衡策略(八种) 四、LVS、Nginx、HAproxy区别 Nginx LVS HAproxy 五、HAproxy部署实战 问题总结: 一、HAproxy 概述 HAProxy是可提供高可用性、负载均衡以及基于TCP和HTTP应用的代理࿰…...
临时用工小程序:一款便捷的用工管理软件
随着企业对人力资源需求的不断增长,临时用工需求也日益旺盛。为了满足这一需求,我们研发了一款名为“临时用工小程序”的软件系统,旨在帮助企业实现临时用工的高效管理。 一、技术栈介绍 后端技术栈 本系统采用Java语言作为开发语言&#…...
Android Studio 之 Android 中使用 HanLP 进行句子段落的分词处理(包括词的属性处理)的简单整理
Android Studio 之 Android 中使用 HanLP 进行句子段落的分词处理(包括词的属性处理)的简单整理 目录 Android Studio 之 Android 中使用 HanLP 进行句子段落的分词处理(包括词的属性处理)的简单整理 一、简单介绍 二、实现原理…...
CSDN编程题-每日一练(2023-08-20)
CSDN编程题-每日一练(2023-08-19) 一、题目名称:等差数列二、题目名称:喜水青蛙三、题目名称:括号匹配一、题目名称:等差数列 时间限制:1000ms内存限制:256M 题目描述: 给定一已排序的正整数组成的数组,求需要在中间至少插入多少个数才能将其补全成为一等差数列。 “…...
大数据:NumPy进阶应用详解
专栏介绍 结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教…...
new String创建几个对象
在java17中 : 问题1:new String("abc")会产生多少个对象? 分两种情况: 情况1: 如果”abc”这个字符串常量不存在,则创建两个对象,分别是“abc”这个字符串常量,以及ne…...
【路由协议】使用按需路由协议和数据包注入的即时网络模拟传递率(PDR)、总消耗能量和节点消耗能量以及延迟研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
c#实现依赖注入
当谈到C#中的依赖注入(Dependency Injection,DI)时,我们可以使用一个简单的示例来说明它是如何工作的。依赖注入是一种设计模式,用于将依赖关系从一个类传递到另一个类,以实现松耦合和可测试性。 假设我们有一个简单的订单处理应用程序,其中包含两个主要类:OrderServi…...
算法通关村十一关 | 位运算实现加法和乘法
1.位实现加法和乘法 在计算机中,位运算的效率要比加减乘除的效率更高,因此在高性能软件中源码中大量使用,计算机里各种运算基本上都是位运算。 学习下面内容之前建议先学习位运算规则:算法通关村十一关 | 位运算的规则_我爱学算…...
C++笔记之条件变量(Condition Variable)与cv.wait 和 cv.wait_for的使用
C笔记之条件变量(Condition Variable)与cv.wait 和 cv.wait_for的使用 参考博客:C笔记之各种sleep方法总结 code review! 文章目录 C笔记之条件变量(Condition Variable)与cv.wait 和 cv.wait_for的使用1.条件变量&…...
Dubbo之DubboBootstrap源码解析
功能描述 DubboBootstrap是Dubbo的启动类,包含服务启动、初始化、预处理配置、销毁清理等核心功能 功能分析 核心DubboBootstrap类分析 主要成员变量分析 private static volatile DubboBootstrap instance; //缓存者启动类的实例对象,以static形式…...
SpringBoot + Vue 微人事 项目 (第八天)
基础信息设置 在该页面添加一个大div,然后添加一个tab选项卡,Element UI里面有 把代码复制到大div里面,把里面的label和name属性改成我们想要的,再把tab-click"handleClick"去掉 <div><el-tabs v-model"a…...
人工智能引领图文扫描新趋势
1. 背景和影响 近日,中国大学生服务外包创新创业大赛决赛在江南大学圆满落幕。为满足现代服务产业企业的现实需求,本次竞赛内容设计充分聚焦企业发展中所面临的技术、管理等现实问题,与产业的结合度更紧密,智能文字识别技术是大赛…...
ChatGPT在智能城市规划和交通优化中的应用如何?
智能城市规划和交通优化是应对城市化挑战、提高城市可持续性的重要领域。在这方面,ChatGPT作为一种强大的自然语言处理模型,可以发挥重要作用,帮助实现更智能、高效的城市规划和交通管理。本文将详细探讨ChatGPT在智能城市规划和交通优化中的…...
探索Perfetto:开源性能追踪工具的未来之光
探索Perfetto:开源性能追踪工具的未来之光 1. 引言 A. 介绍Perfetto的背景和作用 随着移动应用、桌面软件和嵌入式系统的不断发展,软件性能优化变得愈发重要。在这个背景下,Perfetto作为一款开源性能追踪工具,日益引起了开发者…...
ChatTTS在政务热线场景落地:拟真语音提升市民服务体验真实案例
ChatTTS在政务热线场景落地:拟真语音提升市民服务体验真实案例 1. 项目背景与价值 政务热线是政府与市民沟通的重要桥梁,但传统语音系统存在明显痛点:机械化的语音播报缺乏人情味,长时间等待的提示音让市民感到烦躁,…...
益达App:5分钟打造你的个性化跨平台媒体中心
益达App:5分钟打造你的个性化跨平台媒体中心 【免费下载链接】yidaRule 益达规则仓库 项目地址: https://gitcode.com/gh_mirrors/yi/yidaRule 在信息爆炸的时代,我们每天都要面对海量的媒体内容——视频、音频、小说、漫画分散在各个平台和网站中…...
Awoo Installer:破解Switch玩家的终极全能游戏安装引擎
Awoo Installer:破解Switch玩家的终极全能游戏安装引擎 【免费下载链接】Awoo-Installer A No-Bullshit NSP, NSZ, XCI, and XCZ Installer for Nintendo Switch 项目地址: https://gitcode.com/gh_mirrors/aw/Awoo-Installer 在Nintendo Switch破解生态中&a…...
Go语言依赖管理:从GOPATH到Go Modules
Go语言依赖管理:从GOPATH到Go Modules 作为一个写了十几年代码的Go后端老兵,我经历了Go语言依赖管理的从GOPATH到Go Modules的转变,踩了不少坑。今天就来分享一下Go语言依赖管理的实践经验。 一、依赖管理的演进 1. GOPATH时代 在Go 1.11之前…...
跨模态迁移学习在超声目标检测中的落地实践(附乳腺超声数据集处理技巧)
跨模态迁移学习在医学超声检测中的实战指南:从自然图像到乳腺超声的模型迁移 医学影像分析领域长期面临标注数据稀缺的困境,尤其对于超声影像这类高度依赖操作者经验的模态。当我在去年参与一个乳腺癌早期筛查项目时,团队仅能获取到200例标注…...
高效掌握Mermaid CLI:命令行图表工具自动化与高效渲染实战指南
高效掌握Mermaid CLI:命令行图表工具自动化与高效渲染实战指南 【免费下载链接】mermaid-cli Command line tool for the Mermaid library 项目地址: https://gitcode.com/gh_mirrors/me/mermaid-cli 在技术文档创作和软件开发过程中,如何快速将文…...
华为新机散热“封神”:拆解仿生羽翼涡扇,看“小翅膀”如何颠覆手机温控
🎓作者简介:科技自媒体优质创作者 🌐个人主页:莱歌数字-CSDN博客 💌公众号:莱歌数字(B站同名) 📱个人微信:yanshanYH 211、985硕士,从业16年 从…...
NocoDB终极指南:零代码构建企业级可视化数据库平台
NocoDB终极指南:零代码构建企业级可视化数据库平台 【免费下载链接】nocodb nocodb/nocodb: 是一个基于 node.js 和 SQLite 数据库的开源 NoSQL 数据库,它提供了可视化的 Web 界面用于管理和操作数据库。适合用于构建简单的 NoSQL 数据库,特别…...
小米Pad 5变身Windows生产力工具:完整驱动配置实战指南
小米Pad 5变身Windows生产力工具:完整驱动配置实战指南 【免费下载链接】MiPad5-Drivers Based on Surface Duo Drivers. 项目地址: https://gitcode.com/gh_mirrors/mi/MiPad5-Drivers 你是否想过将手中的小米Pad 5从娱乐平板转变为真正的生产力工具&#x…...
把 SAP ABAP CDS View Code Mapping 讲透:从 SEGW 映射到 SADL 运行时的关键机制与项目实践
很多 ABAP 开发者在第一次接触 CDS View Code Mapping 时,容易把它理解成一次普通的字段映射操作:左边是 CDS 字段,右边是 OData 属性,拖一拖、连一连,事情就结束了。真正进入项目以后,大家才会发现,这个动作背后牵动的是 SAP Gateway、SADL、DPC 运行时、关联导航,以及…...
