Nginx:正向代理与反向代理

在计算机网络中,代理服务器是一种充当客户端和服务器之间中介的服务器。根据代理服务器的不同配置和工作方式,可以分为正向代理(Forward Proxy)和反向代理(Reverse Proxy)。下面分别解释这两种代理的工作原理和特点。

1、正向代理(Forward Proxy)

‌定义与工作原理:‌

正向代理通常位于客户端和目标服务器之间,代表客户端进行请求。客户端通过配置使用正向代理服务器来访问外部网络资源。正向代理隐藏了客户端的真实IP地址,使得客户端能够以匿名或绕过某些网络限制的方式访问互联网。

‌应用场景:‌

访问被限制的内容(如某些地区的网站)。

绕过防火墙。

提高访问速度,通过缓存常用数据。

‌配置示例(使用Nginx作为正向代理):‌

‌修改Nginx配置文件‌ (nginx.conf):

http {

server {

listen 8080; # 监听端口

location / {

proxy_pass http://your_actual_server; # 目标服务器地址

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

}

在这个配置中,Nginx监听8080端口,并将所有请求转发到your_actual_server。

‌重启Nginx服务‌:

sudo systemctl restart nginx

2、反向代理(Reverse Proxy)

‌定义与工作原理:‌

反向代理服务器位于客户端和实际服务器之间,代表服务器接收客户端的请求,并将请求转发到适当的后端服务器。反向代理隐藏了后端服务器的真实IP地址,增强了服务器的安全性和灵活性。

‌应用场景:‌

负载均衡,将请求分散到多个服务器上。

提高网站安全性,隐藏服务器内部结构。

缓存常用数据,加快访问速度。

SSL终止(HTTPS加密),减轻后端服务器的负担。

‌配置示例(使用Nginx作为反向代理):‌

‌修改Nginx配置文件‌ (nginx.conf):

http {

upstream backend {

server backend1.example.com; # 后端服务器1

server backend2.example.com; # 后端服务器2

}

server {

listen 80; # 监听端口,通常是HTTP默认端口80

location / {

proxy_pass http://backend; # 转发请求到后端服务器组

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; # 如果是HTTPS,则为https

}

}

}

在这个配置中,Nginx将所有到达80端口的请求转发到backend这个upstream组,该组包括了多个后端服务器。

‌重启Nginx服务‌:

sudo systemctl restart nginx

通过这样的配置,Nginx既可以作为正向代理也可以作为反向代理使用,具体取决于其配置和用途。在实际应用中,通常会根据具体需求选择合适的代理类型进行配置。

相关推荐
嵌入式×边缘AI:打怪升级日志几秒前
嵌入式Linux开发(了解交叉编译工具链的组成)
java·linux·运维
IT界的老黄牛4 分钟前
停电后 Redis 集群两节点起不来:fix 完还报 Bad file format?多部分 AOF 修复的正确姿势
运维·redis·缓存
接着奏乐接着舞5 分钟前
3D Tiles tileset.jso 数据格式
运维·服务器·3d
李小白202002027 分钟前
RK3568 linux6.1 死机
linux·运维·服务器
杨云龙UP21 分钟前
Oracle数据库启动失败:ORA-29701、ORA-01565、ORA-17503故障处理记录_20260429
linux·运维·数据库·oracle·centos
Agent产品评测局25 分钟前
离散制造业生产流程优化,AI落地实操步骤详解:从传统自动化到企业级智能体的技术范式跃迁
运维·人工智能·ai·自动化
Gary Studio1 小时前
ubuntu 16.04一键换源
linux·运维·ubuntu
又来敲代码了1 小时前
k8s的部署
linux·运维·云原生·容器·kubernetes
梦·D·1 小时前
安全运维工具箱sskit_v1.0.3 部署
运维
CDN3601 小时前
DNS 负载均衡技术架构与调度策略解析
运维·架构·负载均衡