Nginx搭建负载环境

简介: Nginx搭建负载环境            Nginx的负载均衡支持4种算法,round-robin、least-connected、ip-hash、和weightd。   round-robin          round-robin的意思是循环轮询。

Nginx搭建负载环境

 

         Nginx的负载均衡支持4种算法,round-robinleast-connectedip-hash、和weightd

 

round-robin

         round-robin的意思是循环轮询。Nginx最简单的负载均衡配置如下:

http {

    upstream app1 {

        server 10.10.10.1;

        server 10.10.10.2;

    }

 

    server {

        listen 80;

 

        location / {

            proxy_pass http://app1;

        }

    }

}

 

         upstream app1用来指定一个服务器组,该组的名字是app1,包含两台服务器。在指定服务器组里面包含的服务器时以形式“server ip/domainport”的形式指定,其中80端口可以忽略。然后在接收到请求时通过“proxy_pass http://app1”把对应的请求转发到组app1上。Nginx默认的负载均衡算法就是循环轮询,如上配置我们采用的就是循环轮询,其会把接收到的请求循环的分发给其包含的(当前可用的)服务器。使用如上配置时,Nginx会把第1个请求给10.10.10.1,把第2个请求给10.10.10.2,第3个请求给10.10.10.1,以此类推。

 

least-connected

         least-connected算法的中文翻译是最少连接,即每次都找连接数最少的服务器来转发请求。例如Nginx负载中有两台服务器,AB,当Nginx接收到一个请求时,A正在处理的请求数是10B正在处理的请求数是20,则Nginx会把当前请求交给A来处理。要启用最少连接负载算法只需要在定义服务器组时加上“least_conn”,如:

    upstream app1 {

                   least_conn;

        server 10.10.10.1;

        server 10.10.10.2;

    }

 

ip-hash

         ip-hash算法会根据请求的客户端IP地址来决定当前请求应该交给谁。使用ip-hash算法时Nginx会确保来自同一客户端的请求都分发到同一服务器。要使用ip-hash算法时只需要在定义服务器组时加上“ip-hash   ”指令,如:

    upstream app1 {

                   ip_hash;

        server 10.10.10.1;

        server 10.10.10.2;

    }

 

weighted

         weighted算法也就是权重算法,会根据每个服务的权重来分发请求,权重大的请求相对会多分发一点,权重小的会少分发一点。这通常应用于多个服务器的性能不一致时。需要使用权重算法时只需要在定义服务器组时在服务器后面指定参数weight,如:

    upstream app1 {

        server 10.10.10.1 weight=3;

        server 10.10.10.2;

    }

 

         在如上配置时,Nginx接收到的请求中大概每4个请求中会有3个请求交给10.10.10.1服务器处理,有1个请求交给10.10.10.2处理。

 

         除了这些指令外,Nginx负载还可以指定其它一些指令,比如backupdown等,详情可参考http://nginx.org/en/docs/http/ngx_http_upstream_module.html

         Nginx可指定的指令可参考http://nginx.org/en/docs/http/ngx_http_proxy_module.html

 

参考资料

http://nginx.org/en/docs/http/load_balancing.html

http://nginx.org/en/docs/http/ngx_http_upstream_module.html

http://nginx.org/en/docs/http/ngx_http_proxy_module.html

 

 

 

目录
相关文章
|
5月前
|
缓存 JavaScript 应用服务中间件
Nginx+Tomcat代理环境下JS无法完全加载问题
Nginx+Tomcat代理环境下JS无法完全加载问题
|
6月前
|
应用服务中间件 Linux nginx
【Linux环境】centOS 7安装nginx详细步骤及nginx配置
【Linux环境】centOS 7安装nginx详细步骤及nginx配置
581 0
|
3月前
|
应用服务中间件 Linux 网络安全
windows+linux环境下nginx部署环境
windows+linux环境下nginx部署环境
|
7天前
|
应用服务中间件 Linux 开发工具
如何在阿里云服务器快速搭建部署Nginx环境
以下是内容的摘要: 本文档主要介绍了在阿里云上购买和配置服务器的步骤,包括注册阿里云账号、实名认证、选择和购买云服务器、配置安全组、使用Xshell和Xftp进行远程连接和文件传输,以及安装和配置Nginx服务器的过程。在完成这些步骤后,你将能够在服务器上部署和运行自己的网站或应用。
|
26天前
|
应用服务中间件 Linux PHP
Linux下安装php环境并且配置Nginx支持php-fpm模块
Linux下安装php环境并且配置Nginx支持php-fpm模块
28 0
|
1月前
|
NoSQL 关系型数据库 MySQL
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
209 0
|
6月前
|
tengine 应用服务中间件 Linux
【Linux环境】如何在Nginx(或Tengine)服务器上安装ssl证书----介绍nginx服务器类型证书的下载与安装操作
【Linux环境】如何在Nginx(或Tengine)服务器上安装ssl证书----介绍nginx服务器类型证书的下载与安装操作
306 0
|
2月前
|
Ubuntu 应用服务中间件 nginx
ubuntu环境下 nginx 怎么配置文件
ubuntu环境下 nginx 怎么配置文件
|
3月前
|
负载均衡 应用服务中间件 nginx
Nginx在分布式环境中的故障转移机制
Nginx在分布式环境中的故障转移机制
45 0