什么是Nginx?
Nginx是一款开源的高性能的反向代理的web软件服务器,处理并发的能力非常强大,在企业中运用也是相当广泛的,测试发现一台Nginx服务器能支持约5W的并发链接
特点:占用内存少,并发强,免费~
反向代理?
反向代理其实就是在保护服务器的,加入反向代理服务器之后让用户的请求发送至代理服务器,由代理服务器转发至真正的处理服务器,这样把保护了服务器,让用户不能明确知道自己访问的是哪台服务器
正向代理?
正向代理和反向代理效果相反,是保护了用户的地址,服务器端不能直接知晓访问它的是哪个用户, 生活中的WiFi路由器就是这个运用的正向代理, 我们多台客户机连接WiFi,由路由器统一转发,外界是不知道我们是用的什么客户机的,只知道这个路由器地址
负载均衡?
增加服务器的数量,然后将请求分发至各个服务器上,将原先请求集中到单个服务器上的情况改为请求分发到不同的服务器,这就是我们说的负载均衡
nginx的负载均衡策略:
1.轮询策略(默认级别)
这是nginx的默认负载均衡测试,公平分配,每台服务器一个一个的来,缺点是可靠性低,在服务器性能不一的情况下,不能够达到真正的负载均衡 适用于图片服务器集群和纯静态页面服务器集群
upstream backserver { server 192.168.0.14; server 192.168.0.15; }
2.权重策略
权重策略,按照权重比例来分配访问量的,适用于后台服务器性能不均的情况
upstream backserver { server 192.168.0.14 weight=10; server 192.168.0.15 weight=10; }
3.ip_hash(访问ip)
每个请求按访问ip的hash结果分配(可以针对同一个C类地址段中的客户端选择同一个后端服务器,除非那个后端服务器宕了才会换一个),这样每个访客固定访问一个后端服务器,可以解决session的问题。
upstream backserver { ip_hash; server 127.0.0.1:88; server 127.0.0.1:80; }
4.fair(第三方)
这个fair表示的是按照服务器响应时间的长短来进行分发的,服务器响应时间越短的,优先分发
upstream backserver { server server1; server server2; fair; }
5.url_hash
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。 注意:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法
upstream backserver { server squid1:3128; server squid2:3128; hash $request_uri; hash_method crc32; }