Nginx的正向代理和反向代理

温馨提示:本文最后更新于2024-12-22 17:00:11,某些文章具有时效性,若有错误或已失效,请在文末留言。

Nginx是一款高性能的HTTP服务器和反向代理服务器,同时是一个 IMAP / POP3 / SMTP 代理服务器。

Nginx 是由俄罗斯的Igor Sysoev(伊戈尔·赛索耶夫)为解决C10k问题(即同时处理超过10000个客户端连接)而开发的。Nginx 凭借其高性能、稳定性、功能丰富和低资源消耗而闻名。它第一个公开版本0.1.0发布于2004年10月4日。2011年6月1日,nginx 1.0.4发布。

Nginx 不仅可以做反向代理,实现负载均衡,还能用作正向代理来进行上网等功能。

Nginx 官网:http://nginx.org
Nginx 中文网:https://nginx.p2hp.com

图片[1]-Nginx的正向代理和反向代理-十一张

功能特点

1、高性能:Nginx能够处理大量的并发连接,且内存消耗相对较低。
2、高稳定性:Nginx以其稳定性而著称,极少出现崩溃的情况。
3、模块化:Nginx支持模块化设计,可以根据需要加载或卸载特定的模块。
4、配置简单:Nginx的配置文件简洁明了,易于理解和维护。
5、跨平台:Nginx可以在多种操作系统上运行,包括Linux、BSD、Mac OS和Windows。

正向代理(代理客户端)

1、工作原理

代理服务器代表客户端发送请求,获取目标服务器的响应并返回给客户端。例子:VPN、游戏加速器、公司网络。

在正向代理模式中,客户端将请求发送给代理服务器,代理服务器再代表客户端向目标服务器发出请求,并将目标服务器的响应返回给客户端。正向代理通常用于访问控制、网络加速和隐私保护。

正向代理通常用于客户端,在客户端配置代理服务器进行指定网站访问,由代理服务器转发请求,返回给客户端,比如国内无法访问谷歌,这个时候我们就可以设置正向代理来访问。

图片[2]-Nginx的正向代理和反向代理-十一张

2、主要作用

🚫 访问限制:企业或学校可能使用正向代理来限制员工或学生访问特定的外部网站。
🔍 内容过滤:正向代理可以用来过滤某些不安全或不恰当的内容。
🚀 缓存:减少外部请求并加速访问速度。
🕵️ 匿名浏览:隐藏用户的真实 IP 地址,使用户可以匿名访问互联网。

图片[3]-Nginx的正向代理和反向代理-十一张

3、配置示例

events {
    worker_connections 1024;
}

http {
    server {
        listen 8888;

        location / {
            proxy_pass http://$http_host$request_uri;
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
}

反向代理(代理服务端)

1、工作原理

代理服务器代表目标服务器接受客户端请求,并将请求转发给目标服务器,再将响应返回给客户端。例子:访问百度网址。

在反向代理模式中,Nginx接收客户端的HTTP请求,将这些请求转发给内部服务器集群处理,然后将服务器的响应发送回客户端。反向代理通常用于隐藏服务器集群的实际地址、实现负载均衡、提高性能和增强安全性。

反向代理是服务端,客户端不需要知道目标服务器的地址,反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器的地址,隐藏了真实服务器的IP地址。

图片[4]-Nginx的正向代理和反向代理-十一张

2、主要作用

📊 负载均衡:在多个后端服务器之间分发客户端请求,以确保没有任何服务器过载。
🚀 Web 加速:使用缓存来减少后端服务器的负载并加快响应速度。
🔐 SSL 终止:处理 SSL/TLS 握手和解密,释放后端服务器的负担。
🛡️ 安全和匿名性:隐藏后端服务器的真实 IP 地址和身份,为后端服务器提供一个保护层,防止直接攻击,从而提高安全性。

图片[5]-Nginx的正向代理和反向代理-十一张

3、配置示例

http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
    }

    server {
        listen 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;
        }
    }
}

正向代理与反向代理的区别

1、代理对象:正向代理代理的是客户端,而反向代理代理的是服务器。

●正向代理:代理服务器代表客户端发送请求,获取目标服务器的响应并返回给客户端
●反向代理:代理服务器代表目标服务器接受客户端请求,并将请求转发给目标服务器,再将响应返回给客户端

2、应用目的:

●正向代理:主要用于访问控制、内容过滤和隐私保护
●反向代理:主要用于负载均衡、缓存、提升安全性

3、配置差异:

●正向代理:直接将请求转发至目标服务器
●反向代理:需要配置后端服务器池(upstream)

✅来源:十一张博客
© 版权声明
THE END
如果觉得这篇文章对您有帮助,可以收藏本网址,方便下次访问!
点赞1 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容