代理服务器和反向代理服务器详解

通常我们所说的代理,都是指的客户端向外界发起请求时,并不是直接与目标服务器连接,而是经过一个代理服务器,将所有请求交给代理服务器,由它去负责连接外界的目标服务器,同时从服务器返回的数据,也经过代理服务器,返回到客户端。在外界看来,所有请求都是来自这台代理服务器,这样就成功的将客户端隐藏在自己身后,起到了一种保护客户端的作用。

程序员别唬我系列之:反向代理

而『反向代理』却是反过来的,它是针对服务器的一种代理技术。反向代理服务器可以接受客户端的请求,然后将它分发到被代理的服务器上,待这些服务器处理完请求后,再将结果转发给客户端,它是将服务器隐藏在自己的身后。从客户端看来,它面对的只有一台服务器,但是背后可能有1000台服务器在提供服务。

程序员别唬我系列之:反向代理

『反向代理』这样做有什么意义呢?

首先,它可以做『负载均衡』。比如说,对于同一个web服务,有10台服务器可以提供服务,但是每台服务器的负荷不太一样,如果一个请求发送到负荷较高的服务器,那么它的处理时间可能会稍长一点,但是客户端是不知道哪一台服务器比较空闲,所以将请求发送到『反向代理』服务器,它是知道每台服务器的负载的,这样由它将请求转发到相对空闲的服务器,以便更快的响应客户端。

然后,它可以减轻后端服务器的一些压力,比如很多静态资源或者缓存数据,可以直接放在反向代理服务器上,不用将这些请求传递到后端服务器,相对来说减轻了后端服务器的压力。

它还可以对请求做进一步的封装和解封,比如想把所有请求升级到ssl加密连接,却不想改造后端服务器,那么可以只在客户端-反向代理服务器之间使用ssl加密连接,而代理服务器-后端服务器之间仍旧使用普通http连接,这样就事半功倍了。

同时,反向代理服务器还可以为后端服务器阻挡一些网络攻击,提升后台服务器的安全性。

总之,反向代理服务器对于后端服务器,就是一个接口人的角色,它接洽了所有客户端的请求,并且进行简单的处理,然后分发到后端服务器。

  • 12
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
以下是nginx正向代理反向代理的配置详解: 1. 正向代理配置 正向代理是指客户端通过代理服务器来访问其他服务器资源。在nginx中,可以通过以下配置实现正向代理: ```nginx http { # 定义代理服务器 upstream backend { server backend1.example.com weight=5; server backend2.example.com; server backend3.example.com; } # 定义http服务器 server { listen 80; server_name proxy.example.com; # 定义代理规则 location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } } ``` 上述配置中,我们定义了一个名为backend的代理服务器,其中包含了三个后端服务器。然后我们定义了一个名为proxy.example.com的http服务器,并在其中定义了代理规则。当客户端访问proxy.example.com时,nginx会将请求转发到backend代理服务器,并由代理服务器向后端服务器请求资源。 2. 反向代理配置 反向代理是指客户端访问代理服务器代理服务器再将请求转发到后端服务器。在nginx中,可以通过以下配置实现反向代理: ```nginx http { # 定义http服务器 server { listen 80; server_name proxy.example.com; # 定义反向代理规则 location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } # 定义代理服务器 server { listen 80; server_name backend1.example.com; # 定义后端服务器规则 location / { root /var/www/backend1; index index.html; } } } ``` 上述配置中,我们定义了一个名为proxy.example.com的http服务器,并在其中定义了反向代理规则。当客户端访问proxy.example.com时,nginx会将请求转发到名为backend的后端服务器。我们还定义了一个名为backend1.example.com的代理服务器,并在其中定义了后端服务器规则。当客户端访问backend1.example.com时,nginx会将请求转发到/var/www/backend1目录下的index.html文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值