十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
下文给大家带来nginx的负载均衡支持哪几种机制,希望能够给大家在实际运用中带来一定的帮助,负载均衡涉及的东西比较多,理论也不多,网上有很多书籍,今天我们就用创新互联在行业内累计的经验来做一个解答。
成都网站建设哪家好,找成都创新互联!专注于网页设计、成都网站建设、微信开发、小程序设计、集团企业网站制作等服务项目。核心团队均拥有互联网行业多年经验,服务众多知名企业客户;涵盖的客户类型包括:成都假山制作等众多领域,积累了大量丰富的经验,同时也获得了客户的一致赞誉!
nginx支持下面几种负载均衡机制:
round-robin:轮询。以轮询方式将请求分配到不同云服务器上
least-connected:最少连接数。将下一个请求分配到连接数最少的那台服务器上
ip-hash :基于客户端的IP地址。散列函数被用于确定下一个请求分配到哪台服务器上
负载均衡默认配置
nginx负载均衡最简单的配置如下:
http {
upstream myapp1 {
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}
server {
listen 80;
location / {
proxy_pass http://myapp1;
}
}
}
在上面的例子中,srv1,srv2,srv3运行着相同的应用程序。如果没有特别指定负载均衡方法默认是以轮询方式。所有的请求被代理到服务组myapp1,然后nginx负载均衡的分发请求。
nginx反向代理实现包括下面这些负载均衡HTTP、HTTPS、FastCGI、uwsgi,SCGI和memcached。
要配置HTTPS的负载均衡,只需使用“https”开头的协议。
当要设置FastCGI,uwsgi,SCGI,或者memcached的负载平衡,分别使用fastcgi_pass,uwsgi_pass,scgi_pass和memcached_pass指令。
以轮询或最少连接的负载均衡算法,每个后续的客户端的请求,可以潜在地分配给不同的服务器上,并不能保证相同的客户端请求将总是指向同一服务器上。
这对于有会话信息的应用场景下,会有问题的。一般的做法是需要将session信息共享,如使用memcache来存放session。
如果将客户端的会话“粘性”或总是试图选择一个特定的服务器,也是可以的。负载均衡的ip-hash机制就可以实现。
配置如下:
upstream myapp1 {
ip_hash;
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}
upstream myapp1 {
server srv1.example.com weight=3;
server srv2.example.com;
server srv3.example.com;
}
这种情况下,每5个新的请求将被分布如下:3请求将被引导到SRV1,一个请求将去SRV2,另一个请求去srv3。
看了以上关于nginx的负载均衡支持哪几种机制,如果大家还有什么地方需要了解的可以在创新互联行业资讯里查找自己感兴趣的或者找我们的专业技术工程师解答的,创新互联技术工程师在行业内拥有十几年的经验了。创新互联官网链接www.cdcxhl.com