反向代理

简介

客户端与服务端建立连接时,客户端的请求会先经过互联网访问网关,网关将请求传输给Nginx服务器,Nginx服务器再与应用服务器建立通信。 123.png

正向代理 类似于下图中的关系

321.png

当设备连接到路由器时,所有数据都需要通过路由器传输。设备发送的数据首先到达路由器,路由器作为网关,将数据转发到下一跳。因为路由器充当网络通信的关键节点,无法被绕开,因此路由器通常被称为 网关。在网络中,所有的请求和响应都必须通过这个网关传递,尤其是在隧道式代理的情况下,所有的流量都会通过网关进行转发。

在这种网络环境中,路由器不仅负责数据包的转发,还可以充当 代理服务器。这是一种隧道式代理,意味着所有数据(请求和响应)都必须经过路由器进行传递。由于所有的流量都要经过路由器处理,在高并发和大流量的情况下,路由器的性能可能成为瓶颈,导致 网络阻塞,影响整体通信速度和质量。

使用反向代理,也就是用 Nginx 充当代理服务器时,它也扮演着类似的角色,代理客户端的请求并将其转发给后端服务器。Nginx 作为代理服务器,不仅需要处理客户端请求,还需要管理后端服务器返回的数据。在隧道式代理的模式下,这可能导致性能瓶颈,特别是在高并发场景下,因为 Nginx 必须处理所有的请求和响应流量。

使用 LVS(Linux Virtual Server) ,一种内核级的负载均衡器。在使用 Nginx 反向代理时,可以使用不同的负载均衡模式,其中一种有效的方式是 DR 模型(Direct Routing),请求通过 Nginx 服务器,但返回的数据不必再经过 Nginx ,而是通过直接路由出网返回给客户端,这种方式减少了 Nginx 的负载,避免其成为性能瓶颈。

其他优化反向代理的技术:
1、Keepalive连接:Nginx 支持 HTTP Keepalive,可以在客户端与服务器之间保持长连接,减少TCP连接的开销,提升请求的响应速度
2、缓存策略:Nginx 支持强大的缓存功能,可以将静态资源或动态页面缓存到本地,减少后端服务器的压力,提升响应速度。
3、CDN(内容分发网络):Nginx 可以结合 CDN 使用,将静态内容分发到全球的 CDN 节点,减少服务器的负载并加快内容传输速度。

反向代理配置

反向代理 添加在 server-location块中 格式为:

proxy_pass [域名]

root 和 index 等详细访问信息无需添加在location中

location / {
    listen 90;
    server_name localhost;

    location / {
        proxy_pass https://www.baidu.com;
    }
}

返回的结果如图

image.png

用户访问Nginx90端口时,Nginx会根据反向代理的规则,将内容拉取并返回给用户。 反向代理不一定支持https的代理(nginx中间劫持?)

Nginx在企业中的应用

传统公司系统架构

传统应用.png

中小公司系统架构

Nginx 能够起到更多业务逻辑的作用,比如发送请求,替换URL,转发数据包,返回静态资源。 设立Nginx服务集群负载均衡分担处理请求的压力 故障转移,能将服务转移到另外的服务器 负载均衡

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇