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

05 部署Nginx反向代理

01 服务器基本信息

名称IP地址
真实Web服务器172.2.25.10
Proxy服务器172.2.25.11

02 Proxy基本设置

[root@likexy-nginx-01 conf.d]# pwd
/etc/nginx/conf.d
[root@likexy-nginx-01 conf.d]# cat proxy.conf 
server {listen 80;server_name www.wp.proxy.com;location / {proxy_pass http://172.2.25.10;}
}
# 在Windoes的hosts文件添加# 172.2.25.11	www.wp.proxy.com
image-20241125121945054
图1 使用Proxy服务器访问网页
image-20241125122546464
图2 抓取到的报文
# 通过域名访问的
image-20241125122843285

图3 可以看到hosts文件

# 代理服务器向真实服务器访问时丢掉了头部
image-20241125122928042
图4 丢失掉了头部

03 Proxy添加头部访问Web服务器

# 我们需要代理服务器向后端请求带着域名
[root@likexy-nginx-01 conf.d]# cat proxy.conf 
server {listen 80;server_name www.wp.proxy.com;location / {proxy_pass http://172.2.25.10;proxy_set_header Host $http_host;	# 携带头部信息}
}
# 头部信息携带了,但是版本由1.1变成了1.0
image-20241125123355807
图5 可以看到添加的头部信息

04 Proxy携带版本信息

[root@likexy-nginx-01 conf.d]# cat proxy.conf 
server {listen 80;server_name www.wp.proxy.com;location / {proxy_pass http://172.2.25.10;proxy_set_header Host $http_host;	# 携带头部信息proxy_http_version 1.1;				# 设置HTTP版本}
}
image-20241125123629371
图6 添加HTTP版本信息

05 在Nginx日志添加客户端IP地址

# 但是在日志上面看不到客户端的IP地址,看到的是代理服务器的IP地址
# 最后一个是"-",在nginx配置文件里面写的是"$http_x_forwarded_for",通过代理服务器连接到Web服务器的客户端的原始IP地址# 但是代理服务器没有获取到客户端的IP
image-20241125123827314
图7 访问的Nginx日志,可以看到没有客户端IP地址
[root@likexy-nginx-01 conf.d]# cat proxy.conf 
server {listen 80;server_name www.wp.proxy.com;location / {proxy_pass http://172.2.25.10;proxy_set_header Host $http_host;	# 携带头部信息proxy_http_version 1.1;				# 设置HTTP版本proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;	# 代理服务器获取客户端IP地址}
}
# 配置完访问就有客户端IP地址了
image-20241125125453179
图8 可以看到客户端IP地址

06 代理到Web的TCP连接,响应,返回时间

[root@likexy-nginx-01 conf.d]# cat proxy.conf 
server {listen 80;server_name www.wp.proxy.com;location / {proxy_pass http://172.2.25.10;proxy_set_header Host $http_host;proxy_http_version 1.1;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_connect_timeout 60s;		# 连接时间proxy_read_timeout 60s;			# 响应时间proxy_send_timeout 60s;			# 返回时间}
}

07 代理缓冲区

# 头部信息:就是语言,浏览器信息等
image-20241125130900015
图9 查看头部信息
# 主题信息就是访问的网页资源,图片等
[root@likexy-nginx-01 conf.d]# cat proxy.conf 
server {listen 80;server_name www.wp.proxy.com;location / {proxy_pass http://172.2.25.10;proxy_set_header Host $http_host;proxy_http_version 1.1;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_connect_timeout 60s;proxy_read_timeout 60s;proxy_send_timeout 60s;proxy_buffering on;		# 开启缓冲区proxy_buffer_size 32k;	# 头部信息缓冲区大小proxy_buffers 4 128k;	# 主体信息缓冲区大小
}

08 设置代理文件

[root@likexy-nginx-01 conf.d]# pwd
/etc/nginx/conf.d
# 把代理需要设置的全部放到一个文件
[root@likexy-nginx-01 conf.d]# cat proxy-data 
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 60s;
proxy_read_timeout 60s;
proxy_send_timeout 60s;
proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 4 128k;[root@likexy-nginx-01 conf.d]# cat proxy.conf 
server {listen 80;server_name www.wp.proxy.com;location / {proxy_pass http://172.2.25.10;include /etc/nginx/conf.d/proxy-data;}
}
http://www.xdnf.cn/news/508411.html

相关文章:

  • Flink Table SQL
  • [SpringBoot]Spring MVC(4.0)
  • TASK03【Datawhale 组队学习】搭建向量知识库
  • 【图像处理基石】OpenCV中都有哪些图像增强的工具?
  • 护网行动——蓝队防守方案指南
  • AI写PPT可以用吗?我测试了3款AI写PPT工具,分享感受
  • Vue 3.0 中的slot及使用场景
  • 【通用智能体】Playwright:跨浏览器自动化工具
  • 微信小程序 地图 使用 射线法 判断目标点是否在多边形内部(可用于判断当前位置是否在某个区域内部)
  • C语言内存函数与数据在内存中的存储
  • ctr查看镜像
  • 掌握版本控制从本地到分布式
  • flat_map, flat_set, flat_multimap, flat_multimap
  • 深入理解位图(Bit - set):概念、实现与应用
  • python中http.cookiejar和http.cookie的区别
  • 深入解析Spring Boot与Kafka集成:构建高性能消息驱动应用
  • 【技海登峰】Kafka漫谈系列(十一)SpringBoot整合Kafka之消费者Consumer
  • 【云原生架构反模式】常见误区与解决方案
  • WPS多级标题编号以及样式控制
  • ES(ES2023/ES14)最新更新内容,及如何减少内耗
  • 大模型微调:从基础模型到专用模型的演进之路
  • IDE/IoT/搭建物联网(LiteOS)集成开发环境,基于 LiteOS Studio + GCC + JLink
  • 为新装的Linux系统配置国内yum源(阿里源)
  • 19. 结合Selenium和YAML对页面实例化PO对象改造
  • 大数据场景下数据导出的架构演进与EasyExcel实战方案
  • 理想AI Talk第二季-重点信息总结
  • 【架构美学】Java 访问者模式:解构数据与操作的双重分发哲学
  • 基于单片机路灯自动控制仪仿真设计
  • 包装设备跨系统兼容:Profinet转Modbus TCP的热收缩包装机改造方案
  • 出现 Uncaught ReferenceError: process is not defined 错误