Nginx 配置负载均衡

1.安装nginx

yum安装

    查看:yum info nginx
    安装:yum install nginx
    启动:service nginx start

2.修改配置文件

nginx默认安装目录为 etc/nginx

        在安装目录下增加新的配置文件

domains/my.conf

upstream my_server {
	server 10.10.111.1:8088;
	server 10.10.112.2:8088;
}

server {
        listen	80;
        server_name	tlk20071.cn;
	
	location / {
	<span style="white-space:pre">	</span>proxy_connect_timeout	3;
		proxy_send_timeout	30;
		proxy_read_timeout	30;

		proxy_pass http://my_server;
	}
}

修改nginx原有的配置文件

注释掉原有的配置文件,引入自己创建的的配置文件,需要重新reload一下让更改的配置文件生效

service -s reload

备注:nginx 的 upstream默认是以轮询的方式实现负载均衡,这种方式中,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

上边用的就是默认的轮询方式。

3.实现负载均衡的方式

1)轮询

轮询即Round Robin,根据Nginx配置文件中的顺序,依次把客户端的Web请求分发到不同的后端服务器。

http{ 
 upstream sampleapp { 
   server <<dns entry or IP Address(optional with port)>>; 
   server <<another dns entry or IP Address(optional with port)>>; 
 } 
 .... 
 server{ 
   listen 80; 
   ... 
   location / { 
    proxy_pass http://sampleapp; 
   }  
 } 
2)IP地址哈希

同一客户端连续的Web请求可能会被分发到不同的后端服务器进行处理,因此如果涉及到会话Session,那么会话会比较复杂。常见的是基于数据库的会话持久化。要克服上面的难题,可以使用基于IP地址哈希的负载均衡方案。这样的话,同一客户端连续的Web请求都会被分发到同一服务器进行处理。

只是在upstream节添加了ip_hash配置。其它的配置同轮询配置。

http{ 
  upstream sampleapp { 
    ip_hash;
    server <<dns entry or IP Address(optional with port)>>; 
    server <<another dns entry or IP Address(optional with port)>>; 
  } 
  .... 
  server{ 
    listen 80; 
    ... 
    location / { 
     proxy_pass http://sampleapp; 
    }  
  } 
3) 最少连接

Web请求会被转发到连接数最少的服务器上

只是在upstream节添加了least_conn配置。其它的配置同轮询配置。  

  http{ 
  upstream sampleapp { 
    least_conn;
    server <<dns entry or IP Address(optional with port)>>; 
    server <<another dns entry or IP Address(optional with port)>>; 
  } 
  .... 
  server{ 
    listen 80; 
    ... 
    location / { 
     proxy_pass http://sampleapp; 
    }  
  } 
4)基于权重的负载均衡

基于权重的负载均衡即Weighted Load Balancing,这种方式下,我们可以配置Nginx把请求更多地分发到高配置的后端服务器上,把相对较少的请求分发到低配服务器。

  http{ 
  upstream sampleapp { 
    server <<dns entry or IP Address(optional with port)>> weight=2; 
    server <<another dns entry or IP Address(optional with port)>>; 
  } 
  .... 
  server{ 
    listen 80; 
    ... 
    location / { 
     proxy_pass http://sampleapp; 
    } 
 } 
上面的例子在服务器地址和端口后weight=2的配置,这意味着,每接收到3个请求,前2个请求会被分发到第一个服务器,第3个请求会分发到第二个服务器,其它的配置同轮询配置。
ps: 基于权重的负载均衡和基于IP地址哈希的负载均衡可以组合在一起使用。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值