05 部署Nginx反向代理

01 服务器基本信息

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

02 Proxy基本设置

sh 复制代码
[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;
	}
}
sh 复制代码
# 在Windoes的hosts文件添加
	# 172.2.25.11	www.wp.proxy.com

图1 使用Proxy服务器访问网页 图2 抓取到的报文

sh 复制代码
# 通过域名访问的

图3 可以看到hosts文件

sh 复制代码
# 代理服务器向真实服务器访问时丢掉了头部

图4 丢失掉了头部

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

sh 复制代码
# 我们需要代理服务器向后端请求带着域名
[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

图5 可以看到添加的头部信息

04 Proxy携带版本信息

sh 复制代码
[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版本
	}
}

图6 添加HTTP版本信息

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

sh 复制代码
# 但是在日志上面看不到客户端的IP地址,看到的是代理服务器的IP地址
# 最后一个是"-",在nginx配置文件里面写的是"$http_x_forwarded_for",通过代理服务器连接到Web服务器的客户端的原始IP地址
	# 但是代理服务器没有获取到客户端的IP

图7 访问的Nginx日志,可以看到没有客户端IP地址

sh 复制代码
[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地址
	}
}
sh 复制代码
# 配置完访问就有客户端IP地址了

图8 可以看到客户端IP地址

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

sh 复制代码
[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 代理缓冲区

sh 复制代码
# 头部信息:就是语言,浏览器信息等

图9 查看头部信息

sh 复制代码
# 主题信息就是访问的网页资源,图片等
sh 复制代码
[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 设置代理文件

sh 复制代码
[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;
	}
}
相关推荐
wangruofeng2 小时前
opencodex 解锁 Codex 任意模型,一个本地代理打通 Claude/Kimi/GLM/DeepSeek
llm·github·openai
一点一木3 小时前
从60首歌到1个网站:输入你的故事,还你一首歌
前端·github
大耳朵-小飞象3 小时前
电力安全运维的智能密码:BACS如何破解设备全生命周期管理难题,让电网安全“看得见、管得住”?
运维·安全·智慧城市·能耗系统·楼宇智控·未来生活
极客侃科技4 小时前
制造企业 MES/APS 选型:SAP PP/DS 集成、ERP-MES 边界划分与一体化架构要点
运维·架构·制造
生活爱好者!7 小时前
我把NAS当作下载机,docker一键部署qb
运维·docker·容器
刘较瘦_8 小时前
AI 开发中的 Git Submodule 父子仓库模式:前后端分仓管理与协作实践
前端·github
尽兴-8 小时前
企业业务系统架构选型与渐进式演进
运维·系统架构·devops
通信小小昕9 小时前
Ubuntu 26.04 中文输入法安装
linux·运维·ubuntu
壮哥_icon9 小时前
【Android 系统开发】使用 BAT 脚本高效自动化管理 /system/priv-app/ 系统应用(安装与卸载)
android·运维·自动化
RD_daoyi9 小时前
外链权重暴跌至13%,品牌提及反超传统链接——2026年不做Digital PR,你的独立站等于隐形
运维·网络·学习·机器学习·搜索引擎