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]";

}

}

说明:

  1. weight的值越大,表明这台服务器办事效率高,老板喜欢,有事了,找他的概率大.
  2. max_fails要说明的是,你找这台服务器办事,叫他2次如果还不理你,你不要对他报以希望了.
  3. fail_timeout要说的是,给这台服务器一件小事让它办,30s还没办完,算了,不靠谱,不要等了,找其他人吧.

Nginx中的几种负载均衡方式

    1. 轮询(默认)
      每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
    2. weight
      指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
    3. ip_hash
      每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
    4. fair(第三方)
      按后端服务器的响应时间来分配请求,响应时间短的优先分配。
    5. url_hash(第三方)
      按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

以上是关于nginx 反向代理负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

nginx反向代理访问很慢,我做了负载均衡,现在几乎无法访问,有谁能帮我解决一下,万分感谢。

Nginx实现反向代理负载均衡功能

nginx学习之反向代理负载均衡

Nginx 反向代理负载均衡虚拟主机

nginx做反向代理负载均衡 Java怎么获取后端服务器获取用户IP

Nginx反向代理和负载均衡应用实战