nginx 反向代理负载均衡
Posted hubb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx 反向代理负载均衡相关的知识,希望对你有一定的参考价值。
负载均衡:
一听这词很多小伙伴吓坏了,前人就喜欢搞一些看起来很高大上的词,好让后生望而敬畏.那我们一起来捋一捋. 负载就是负担. 均衡就是平均分.这样 一说就是负担平均分.
服务器也要减减压
我们都知道服务器是第三产业,服务行业,客户来了,你不能不服务.客户少还行,客户多了一台服务器就顶不住了,怎么办?我们找来多台服务器,让这些服务器去均分客户然后服务响应.或者让某些服务器只干一类时,来提高效率.
那么如何让我们的代理服务器知道哪些服务器是可以去干活的,而且擅长干什么活呢?这个时候就需要我们去配置了.
编辑nginx.conf文件(注意 upstream {} 配置信息必须在 Server {} 配置的外部,不是 Server {} 的里面)
upstream group1{
server 127.0.0.1:80 weight=10 max_fails=2 fail_timeout=30s;
server 192.168.0.12:81 weight=1 max_fails=2 fail_timeout=30s;
}
server {
listen 9000;
server_name localhost;
default_type text/html;
location / {
echo "hahh";
}
location = /a/ {
#echo "= /a";
proxy_pass http://group1/;
}
location ^~ /a {
echo "^~ /a";
}
location ^~ /a/b {
echo "^~ /a/b";
}
location ~ ^/w {
#echo "~ ^w";
proxy_pass http://127.0.0.1:80;
}
location ~ ^/[a-z] {
echo "~ ^[a-z]";
}
}
说明:
- weight的值越大,表明这台服务器办事效率高,老板喜欢,有事了,找他的概率大.
- max_fails要说明的是,你找这台服务器办事,叫他2次如果还不理你,你不要对他报以希望了.
- fail_timeout要说的是,给这台服务器一件小事让它办,30s还没办完,算了,不靠谱,不要等了,找其他人吧.
Nginx中的几种负载均衡方式
- 轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 - weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 - ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 - fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。 - url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
以上是关于nginx 反向代理负载均衡的主要内容,如果未能解决你的问题,请参考以下文章
nginx反向代理访问很慢,我做了负载均衡,现在几乎无法访问,有谁能帮我解决一下,万分感谢。