Nginx(六)-- 反向代理及负载均衡

Nginx(六)-- 反向代理及负载均衡

反向代理

1.概念

反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

2.优势
  • 隔离内部服务器,提高安全性

  • 可以在代理服务器上增加缓存,减少后端服务器的压力,提高性能

  • 很方便的进行横向扩展

  • AIO .

3.配置

例如,当我们直接访问nginx的IP时,我们设置直接跳转到百度,配置 如下:

Nginx(六)-- 反向代理及负载均衡

proxy_pass [可以是ip地址、也可以是域名、也可以是ip:端口]。

当访问 192.168.80.128时,会直接跳转到百度。

负载均衡

1.概念

负载均衡 建立在现有的网络结构上,提供一种廉价有效透明的方法来扩大网络设置和服务器的带宽、增加吞吐量、加强网络数据处理能力,以及提供网络的灵活性和可用性。

用得较多的负载均衡器硬件有F5 BIG-IP,软件有 LVS,Nginx及HA-Proxy 。高可用软件有 Hearbeat和keepalived 。成熟的Linux集群架构有LVX+Keepalived、Nginx+keepalived及DRBD+Hearbeat。

Nginx可以按轮询、IPhash、URLhash、权重等多种方法对后端的服务器执行负载均衡操作,同时还支持对后端服务器的健康检查。

2.upstream

upstream 是nginx服务器的一个重要模块,upstream模块实现在轮询在客户端ip之间实现后端的负载均衡。

3.利用Upstream实现负载均衡的几种方式

1.轮询

在http中配置upstream,在server中配置反向代理,如下:

Nginx(六)-- 反向代理及负载均衡

在浏览器中访问:http://192.168.80.128/,刷新几次界面后,效果如下:

Nginx(六)-- 反向代理及负载均衡Nginx(六)-- 反向代理及负载均衡

因为我是运用了两个tomcat,一个版本是7.0.75,一个是7.0.79,刷新几次界面后,可以看到跳转到不同的tomcat。

当然,可以配置多个upstream,然后配置多个 server。

2.ip_hash,可以保证session共享

Nginx(六)-- 反向代理及负载均衡

在浏览器中访问:http://192.168.80.128/,不管刷新几次,依旧显示的是第一次出现的tomcat。

3.权重,weight值越大,轮询几率越高

Nginx(六)-- 反向代理及负载均衡

在浏览器中访问:http://192.168.80.128/,出现端口号是8088的几率大。权重值跟请求几率成正比。

4.响应时间,响应时间最短的请求,最优先分配

Nginx(六)-- 反向代理及负载均衡

5.url_hash

对相同的请求,分配的url是一样的。