nginx服务器的负载均衡和动静分离(未完)
安装nginx,我的博客里面有介绍源码和yum安装.
实战:使用nginx实现动静分离的负载均衡集群
实战:使用haproxy实现负载均衡集群
LB负载均衡集群分为两类:LVS(四层)和Nginx或proxy(七层)
客户端通过访问分发器的VIP来访问网站
现在应用更复杂,比如现在网站页面有:.php .html .png .jpg .jsp 等,有动态页面有静态页面,静态页面一般是不变的,想访问更快些。
但是前面的LVS是四层的,基于IP的,现在需要在不同应用层基于不同的应用进行分发.
工作中,希望:
静态文件处理:可以使用nginx或apache
动态文件处理:apache,tomcat
图片文件处理:squid
nginx 动静分离负载均衡:
1.nginx的upstream目前最常用3中方式分配
1)轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除
2)weight
指定轮询几率,weight和访问比率正比,用于后端服务器性能不均的情况.
3)ip_hash
每个请求访问ip的hash结果分配,这样每个访客固定一个后端服务器,可以解决session的问题.
4)fair(第三方)
按后端服务器相应时间来分配请求,响应时间短的优先分配
5)url_hash(第三方)
配置nginx.conf:
定位小技巧(定位两个百分号,按%)
在server里面配置
server{ listen 80; server_name localhost; location /{ root html; index index.html index.htm; if($request_uri ~* \.html$) {#后缀为html的走下面服务器 proxy_pass http://htmlservers; } if($request_uri ~* \.php$) {#后缀php的走下面 proxy_pass http://phpservers; }
#其他的资源走picserver proxy_pass http://picservers; } }
在http{}里面添加server{}外面
upstream htmlservers{#定义负载均衡服务器组 server 192.168.1.62:80; server 192.168.1.64:80; } upstream phpservers{ server 192.168.1.62:80; server 192.168.1.64:80; } upstream picservers{ server 192.168.1.62:80; server 192.168.1.64:80; }