Nginx实现七层负载均衡
2020-08-18 18:21:59 0 举报
nginx七层负载深度分析
作者其他创作
大纲/内容
server { listen 80; server_name www.weblb.com; location / { root /web/www; index index.html; }}server { listen 80; server_name www1.weblb.com; location / { root /web/www1; index index.html; }}limit_req_zone $binary_remote_addr zone=req_zone:10m rate=100r/s;server { listen 80; server_name www.jinghao.com; client_max_body_size 500m; root /web/wordpress; index index.html index.php; location ~ \\.php$ { root /web/wordpress; limit_req zone=req_zone burst=50 nodelay; #访问php页面时,将请求交给fastcgi fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }}
六种调度算法
web集群
upstream jinghao { least_conn; server 172.16.1.7:80; server 172.16.1.8:80; server 172.16.1.9:80;}server { listen 80; server_name www.weblb.com; location / { proxy_pass http://jinghao; include proxy_params; }}server { listen 80; server_name www1.weblb.com; location / { proxy_pass http://jinghao; include proxy_params; }}server { listen 80; server_name www.jinghao.com; location / { proxy_pass http://jinghao; include proxy_params; }}
1)轮询最基本的配置方法,是upstream模块默认的负载均衡策略。每个请求会按时间顺序平均分配到不同的后端服务器2)weight 权重方式,在轮询策略的基础上指定轮询的几率。也可以认为是在轮询的基础上新增了一个weight的参数,此参数指定轮询的几率,值为number3)ip_hash 依据ip分配方式,指定负载均衡器按照基于客户端IP的分配方式,这个方法确保了相同的客户端请求一致发送到相同的服务器,以保证session会话。这样每个访客都固定访问一个后端服务器,可以解决session不能跨服务器的问题4)least_conn 最少连接方式,把请求发给链接数最少的后端服务器。轮询是把请求平均分配给各个后端,使它们的负载大致相同。但是,有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况下,least_conn这种方式就可以达到更好的负载均衡效果5)fair 响应时间方式,按照服务器端的响应时间来分配请求,响应时间短的优先分配6)url_hash url分配方式,按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,要配合缓存命中来使用。同一个资源多次请求可能会到达不同的服务器上,导致不必要的多次下载,缓存命中率不高,以及一些资源时间的浪费。而使用url_hash,可以使得同一个url(也就是同一个资源请求)会到达同一台服务器,一旦缓存住了资源,再次收到请求,就可以在缓存中读取
web02
负载均衡
web01
web03
0 条评论
下一页