nginx反向代理后实现nginx和apache两种web服务器能够记录客户端的真实IP地址

news2024/9/22 9:30:53

一.构建环境

二.配置反向代理

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 .\hosts

PS 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代理服务器的真实地址 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/891303.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

渗透测试-SQL注入原理

文章目录 sql注入原理sql注入基本流程判断是否存在注入,是否会将用户输入拼接到sql语句,并当做代码执行判断字段数判断显错位判断库名判断表名判断列名判断具体数据 sql注入原理 sql注入基本流程 判断是否存在注入,是否会将用户输入拼接到sql…

leetcode 322. 零钱兑换

本题属于完全背包问题,但要求最少的硬币个数。于是设定dp数组的含义dp[i]:总金额为i时,能凑成i的最少硬币个数。 需要注意初始化dp数组时,除0以外的其他地方需要初始化为INT_MAX以保证在递推过程中能被正确的覆盖。 代码如下: …

shell的两种属性: 交互(interactive)与登录(login)

1. 背景 在看shell变量的时候引起了兴趣: 局部变量,全局变量,环境变量,shell的配置文件,参考博客: http://c.biancheng.net/view/773.html 2. 交互式与非交互式 参考博客: shell的两个属性:是否交互式(interactive), 是否登录…

Android---- 一个完整的小项目(消防app)

前言: 针对不同群体的需求,想着应该拓展写方向。医疗app很受大家喜欢,就打算顺手写个消防app,里面基础框架还是挺简洁 规整的。登陆注册和本地数据库写的便于大家理解。是广大学子的毕设首选啊! 此app主要为了传递 消防…

vue3中将表格导出excel的方法(极简且有效)

🥰博主:小猫娃来啦 🥰文章核心:vue2或vue3中将表格导出excel的通用方法 文章目录 安装依赖,导入模块需要注意的完整导出代码原理效果 安装依赖,导入模块 安装 npm i xlsx 或者 pnpm i xlsx导入 import *…

图片转换pdf怎么转换?这几种方法很好用

图片转换pdf怎么转换?将图片转换为pdf可以使你更方便地分享和存储文件。相比于图片格式,pdf格式更加通用,可以在不同的设备和操作系统上打开和查看。此外,pdf格式还可以更好地保护你的文件,可以设置密码保护和防止复制…

vue3 基础知识(webpack) 02

你好,今天过的怎么样呀,嘿嘿,加油夏 💕 文章目录 一、组件二、如何支持SFC三、webpack 打包工具 一、组件 使用组件中我们可以获得非常多的特性: 代码的高亮;ES6、CommonJS的模块化能力;组件作…

WPF的CheckBox中的三个状态

WPF的CheckBox中的三个状态 CheckBox控件和RadioButton控件是继承自ToggleButton类,这意味着用户可切换他们的开关状态,其中IsChecked属性是可空的Boolean类型,这意味着该属性可以设置为true,false或null。 null值表示不确定状态…

分类预测 | MATLAB实现WOA-CNN-BiGRU-Attention数据分类预测

分类预测 | MATLAB实现WOA-CNN-BiGRU-Attention数据分类预测 目录 分类预测 | MATLAB实现WOA-CNN-BiGRU-Attention数据分类预测分类效果基本描述模型描述程序设计参考资料 分类效果 基本描述 1.Matlab实现WOA-CNN-BiGRU-Attention多特征分类预测,多特征输入模型&…

看完尤雨溪知乎343条回答,我学到了这些!

最近看完了尤雨溪的知乎 343 条回答和 25 篇文章,记录下一些内容(每条仅摘录部分内容),分享给大家! 怎么才能有尤雨溪一半强,该怎么学习? 我更愿意把 “强” 理解为 “制造 impact 的能力”&a…

如何在vue3中封装并使用echarts组件

一. 安装echarts npm install echarts --save 二. 按需加载创建一个echarts文件夹,并创建配置文件 //引入echarts import * as echarts from echarts/core//引入柱状图,折线图 import { BarChart, LineChart } from echarts/charts// 引入提示框&#x…

论文及代码详解——可变形卷积(DCNv1)

文章目录 论文详解Deformable ConvolutionDeformable RoI PoolingDeformable ConvNetsUnderstanding Deformable ConvNets 代码详解 论文:《Deformable Convolutional Networks》 论文详解 Deformable Convolution 普通卷积的数学表达 普通的二维卷积包括两个步骤:…

小知识积累

1、使用JSON.parse(JSON.stringify()) 深拷贝时会出现的问题 var obj {a: "zs",b: undefined,c: Symbol("score"),d: null,e: function () {console.log("show");},};console.log(JSON.parse(JSON.stringify(obj)));很明显undefined、函数、sym…

Netty+springboot开发即时通讯系统笔记(三)

实现长连接负载均衡策略 登录成功返回登陆的im地址。 1.在公共模块里写个RouteHandle接口,然后他的实现类去实现不同的均衡策略。 2.在业务模块的config文件下的beanConfig中定义一个Bean routeHandle,从配置文件中获取不同的负载均衡策略来初始化Rou…

苹果电脑会自动清理垃圾吗 苹果电脑系统垃圾怎么清除

苹果电脑是很多人喜欢使用的一种电脑,它有着优美的外观,流畅的操作系统,丰富的应用程序和高效的性能。但是,随着时间的推移,苹果电脑也会产生一些不必要的文件和数据,这些文件和数据就是我们常说的垃圾。那…

半导体退火那些事(2)

2.半导体退火的作用 2.1改善半导体的电学性能 退火过程中,材料中的缺陷得到修理,杂质原子和材料内的杙错得到排列,位于能带中动力学的载流子少,能级也就相对于更加密集。因而在退火之后,半导体材料中的电子、空穴浓度…

RabiitMq-4工作队列/消息应答

1.工作队列 工作机制类似一个生产者,多个消费者。工作队列采用轮训的机制,即工作线程一次只能处理一个消息,轮流处理 公共方法 public class MqUtiles {public static final String QUEUE_NAME"hello";public static Channel fu…

预防SQL漏洞注入和规避网络攻击

前言: 虽然近些年SQL注入已经被各类的安全开发框架规避了绝大部分,但SQL注入作为一种最原始的攻击手段之一,破坏力仍然十分强大,因为它直捣黄龙数据中心。所以未雨绸缪,各位不可不重视。 预防SQL注入方法措施: 服务器…

【微信小程序】阶段开发总结2

【微信小程序】阶段开发总结2 《工欲善其事,必先利其器》 一、选择器组件Picker 由于业务需求,需要比较个性化的时间Picker组件和基础Picker组件,便基于微信提供的 picker-view 自行封装了两个Picker组件。 基础Picker: 代码示…

低代码平台这5大选型要素值得参考

伴随低代码的流行,选购低代码成为越来越多人需要面临的挑战。选平台容易,换平台难。不同的企业场景不同,对低代码平台的需求也不一样。因此在做出技术选型时,有五个关键要素需要考虑。 要点1:是否符合自身需求 这是最核…