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既可以作为正向代理也可以作为反向代理使用,具体取决于其配置和用途。在实际应用中,通常会根据具体需求选择合适的代理类型进行配置。

相关推荐
爱吃香菜的初学者13 小时前
十四.Linux——消息队列
linux·运维·开发语言
Lvan的前端笔记19 小时前
docker:每个前端项目一个 Nginx 容器还是只有一个Nginx容器
前端·nginx·docker
姜鱼问生19 小时前
Nginx 缓存命中率监控:从 X-Cache-Status 到实时统计
运维·nginx·缓存
Apipi*20 小时前
30天速通Linux 第六章信号及信号处理
linux·运维·信号处理
运维行者_21 小时前
网络性能监控怎么做?从自动发现到根因分析的4个环节
运维·服务器·网络·人工智能·支持向量机
此时不提桶,更待何时1 天前
06-14-A-Kafka集群运维与迁移实战详解
运维·kafka
IT研究所1 天前
AI-ITR平台如何减少客户问题反复升级?
大数据·运维·人工智能·低代码·自然语言处理·安全架构·企微
AIgorithmGEEK1 天前
[Linux]从手写报头到内核套路:序列化、反序列化与自定义协议全链路
linux·运维·服务器·网络·序列化·反序列化
Nil2081 天前
leetcode 139单词拆分
linux·运维·服务器
Starry-sky(jing)1 天前
BUG: unable to handle kernel paging request 完整排查:dmesg 四要素与三路定罪
linux·运维·服务器·内核·排障