Nginx学习笔记3之NginxHTTP负载均衡
4.NginxHTTP负载均衡
可以在Nginx的静态配置nginx.conf中配置,使其静态HTML网页、图片、JS、CSS、Flash等使用nginx来处理,以便获得更快的速度。文件扩展名为.jsp、.do的请求,由nginx反向代理apache HTTP服务器来处理。
4.1负载均衡
负载均衡是由多台服务器以对称的方式组成的一个服务器集合,每台服务器具有同等的地位,都可以单独对外提供服务而无需其他服务器的辅助。通过负载均衡技术,将外部请求均匀的分配到对称结构中的一台服务器,接收到请求的服务器独立回应客户端的请求。
4.2反向代理
反向代理reverse proxy:以代理服务器来接受Internet的连接请求,然后将请求转发给内部服务器,并将服务器的结果返回Internet上的客户端。代理服务器表现像一台服务器。
常见的代理服务器,只用于代理内部网络对Internet的请求连接,客户机必须指定代理服务器。并将要直接发送到web服务器的http请求发送到代理服务器中。但外部网络的主机并不会配置使用这个代理服务器,因此代理服务器需要搜寻不确定的服务器。
当一个代理服务器能够代理外部网络的主机访问内部网络时,这种代理模式叫做反向代理。
Web负载均衡的方法:用户手动选择方式、DNS轮询方式(可靠性低、负载不均衡)、4/7层负载均衡设备、
4.3Http Upstream模块
Upstream模块是nginx负载均衡的主要模块。
提供简单方法实现在轮询和客户端 IP之间的后端服务器负载均衡,并可与对服务器进行健康检查。
Upstream backend{
Server X weight=5;
Server Y;
}
Ip hash指令:
将客户端的IP 的请求通过哈希算法定位到同一台后端服务器。无法保证服务器的负载均衡。
Server指令
指定后端服务器的参数和名称。
参数:weight值越高,被分配到的请求越多。默认为1
Max_fail:在fail_timeout指定的时间内请求失败的次数
fail_timeout:经历Max_fail失败后暂停时间
down:标记服务器为永久离线状态
backup:在非backup服务器全部宕机时活繁忙时启用。
Upstream指令:
设置一组可以在proxy_pass和fastcgi_pass指令中使用的代理服务器,默认的负载均衡为轮询。
一般需要2台或以上的nginx负载均衡服务器,实现故障转移和高可用。
双机高可用一般是通过虚拟IP方式实现。
5.Rewrite规则
Rewrite规则主要用于URL重写。
主要有if return rewrite set break指令等。