资讯专栏INFORMATION COLUMN

Nginx深入了解-进阶(三)

kycool / 1315人阅读

摘要:负载均衡,简称是一种服务器或网络设备的集群技术。负载均衡将特定的业务网络服务网络流量等分担给多个服务器或网络设备,从而提高了业务处理能力,保证了业务的高可用性。

Nginx负载均衡(Load Balance,简称LB)是一种服务器或网络设备的集群技术。负载均衡将特定的业务(网络服务、网络流量等)分担给多个服务器或网络设备,从而提高了业务处理能力,保证了业务的高可用性。

Nginx负载均衡示意图:

Nginx负载均衡原理就是将所有客户端的请求通过proxy_pass代理转发到对应的一组后端服务器upstream server上。

配置语法:
Syntax:upstream name {...}

Default:--

Context:http

配置实例:

后端服务器组upstream server

#server1
server {
    listen 8001;
    server_name localhost;
    access_log /var/logs/nginx/access.log main;

    location / {
        root /opt/app/code;
        index index.html index.htm index.php;
    }
    ...
}
#server2
server {
    listen 8002;
    server_name localhost;
    access_log /var/logs/nginx/access.log main;

    location / {
        root /opt/app/code;
        index index.html index.htm index.php;
    }
    ...
}
#server3
server {
    listen 8003;
    server_name localhost;
    access_log /var/logs/nginx/access.log main;

    location / {
        root /opt/app/code;
        index index.html index.htm index.php;
    }
}

负载均衡服务器main server

#默认使用轮询机制
upstream test {
    server 114.249.225.223:8001 down;
    server 114.249.225.223:8002 backup;
    server 114.249.225.223:8003 max_fails=1 fail_timeout=30s; // 允许失败一次,超过30s则直接访问8002
}
#加权
upstream test {
    server 114.249.225.223:8001;
    server 114.249.225.223:8002;
    server 114.249.225.223:8003 weight=5;
}
#ip_hash
upstream test {
    ip_hash;
    server 114.249.225.223:8001;
    server 114.249.225.223:8002;
    server 114.249.225.223:8003;
}
#url_hash
upstream test {
    hash $request_uri;
    server 114.249.225.223:8001;
    server 114.249.225.223:8002;
    server 114.249.225.223:8003;
}
server {
    listen 80;
    server_name localhost www.mantis.me;

    access_log /var/logs/nginx/access.log main;

    location / {
        proxy_pass http://test;
        include proxy_params;
    }
    ...
}

后端服务器在负载均衡调度中的状态:

参数 说明
down 当前的server暂时不参与负载均衡
backup 预留的备份服务器
max_fails 允许请求失败的次数
fail_timeout 经过max_fails失败后,服务暂停的时间
max_conns 限制最大连接数

调度算法:

算法 说明
轮询(默认) 按时间顺序逐一分配到不同的后端服务器
加权轮询 weight越大,分配到的访问几率越高
ip_hash 每个请求按访问ip的hash结果分配,这样来自同一个ip的请求将固定访问到同一个后端服务器
url_hash 按照访问的url的hash结果来分配请求,是每个url定向到同一个后端服务器
least_conn 最少连接数,哪个机器连接数少就分发到哪个机器
hash关键数值 hash自定义的key

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40055.html

相关文章

  • Nginx深入了解-进阶(四)

    摘要:同样可以用来作为缓存服务客户端浏览器缓存我们称之为客户端缓存,后端使用等缓存服务我们称之为后端缓存,同理作为缓存服务我们就称之为代理缓存。缺点当文件很大时或者很小时,可能会导致文件描述符耗尽等情况。 Nginx同样可以用来作为缓存服务;客户端浏览器缓存我们称之为客户端缓存,后端使用Redis、Memcache等缓存服务我们称之为后端缓存,同理Nginx作为缓存服务我们就称之为代理缓存。...

    miya 评论0 收藏0
  • Nginx深入了解-进阶(二)

    摘要:客户端服务配置实例只允许访问服务器配置客户端使用代理工具配置代理服务器,例如系统自带扩展工具等,配置相应的代理服务器地址。在浏览器输入即可访问。 Nginx作为代理服务.正向代理:代理对象为客户端.反向代理:代理对象为服务端. 反向代理 配置语法: Syntax:proxy_pass URLDefault:--Context:location、if in location、limit_...

    keithyau 评论0 收藏0
  • Nginx深入了解-进阶(一)

    摘要:用来作为静态资源服务浏览器缓存跨域防盗链等。非服务器动态运行生成的文件。防盗链配置配置实例这里只允许头为的地址和搜索过来的,可以便于优化 Nginx用来作为静态资源web服务;CDN、浏览器缓存、跨域、防盗链等。 非服务器动态运行生成的文件。 类型 种类 浏览器端渲染 HTML、CSS、JS 图片 JPG、GIF、JPEG、PNG 视频 FLV、MPEG 文件 T...

    reclay 评论0 收藏0
  • 写这么多系列博客,怪不得找不到女朋友

    摘要:前提好几周没更新博客了,对不断支持我博客的童鞋们说声抱歉了。熟悉我的人都知道我写博客的时间比较早,而且坚持的时间也比较久,一直到现在也是一直保持着更新状态。 showImg(https://segmentfault.com/img/remote/1460000014076586?w=1920&h=1080); 前提 好几周没更新博客了,对不断支持我博客的童鞋们说声:抱歉了!。自己这段时...

    JerryWangSAP 评论0 收藏0
  • PHP学习方向-进阶2(

    摘要:关注回复,获取原理锁的解析以及使用场景关注回复,获取高级知识块关注回复,获取的相关知识关注回复,获取相关的知识轻轻关注,将推心的不错经验和知识 实践篇 给定二维数组,根据某个字段排序 如何判断上传文件类型,如:仅允许 jpg 上传 不使用临时变量交换两个变量的值 $a=1; $b=2; => $a=2; $b=1; strtoupper 在转换中文时存在乱码,你如何解决?php...

    ingood 评论0 收藏0

发表评论

0条评论

kycool

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<