Nginx 负载均衡实战


前言

本文章简单介绍怎么使用宝塔的Nginx实现简单的负载均衡。网站也是宝塔搭建的。

一、配置服务器列表

首先配置负载均衡的服务器列表。只有在列表中的服务器才会分配流量过去。

upstream zjj_bal{
  server 127.0.0.1:81;
  server 192.168.1.x1:81;
  server 192.168.1.x2:81;
}

踩坑

第一就是这个upstream模块放的地方要在http之内,但是在server之外,与server是平级,不然保存配置时ngins会报错。如下图所示(与原配置不一样是因为删了一部分方便截图,实际不用删)。
在这里插入图片描述
第二就是配置发服务器IP后方的端口,不能配置成80端口,否则会转发失败(和反代理有关可能)。

二、在网站中配置负载转发规则

这里展示成一个外网入口,其他服务器内网负载均衡。所以需要建一个外网访问的网站,与多个内网的网站。

1.创建网站

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.入口网站配置负载规则转向

在这里插入图片描述

location ~ .*$ {
   index index.jsp index.html;
   proxy_pass http://zjj_bal;
}

3.访问结果

去宝塔的index页面修改一下内容,方便观察结果(展示修改方式,熟悉的小伙伴可以跳过)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

然后直接访问外网地址就可以看到结果。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
不断的刷新页面,会发现会在三个服务器中循环访问。

4.负载转发规则常用参数

负载均衡之后,IP地址可能不能正常获取等等问题,就需要配置相应的参数来设置。在这里列出一部分的常用参数。

location ~ .*$ {
	#定义首页索引文件的名称
	index index.php index.html index.htm;
	
	#请求转向mysvr 定义的服务器列表
	proxy_pass http://zjj_bal;
	
	#以下是一些反向代理的配置可删除.
	proxy_redirect off;
	
	#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
	proxy_set_header Host $host;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	
	#允许客户端请求的最大单文件字节数
	client_max_body_size 10m; 
	
	#缓冲区代理缓冲用户端请求的最大字节数,
	client_body_buffer_size 128k;
	
	#nginx跟后端服务器连接超时时间(代理连接超时)
	proxy_connect_timeout 90;
	
	#连接成功后,后端服务器响应时间(代理接收超时)
	proxy_read_timeout 90;
	
	#设置代理服务器(nginx)保存用户头信息的缓冲区大小
	proxy_buffer_size 4k;
	
	#proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
	proxy_buffers 4 32k;
	
	#高负荷下缓冲大小(proxy_buffers*2)
	proxy_busy_buffers_size 64k; 
	
	#设定缓存文件夹大小,大于这个值,将从upstream服务器传
	proxy_temp_file_write_size 64k;  
}

总结

只有自己实践过了,才发现没有想象中的那么难,当然这只是一个很简单的小例子。在分布式当中,只是一个小小的部分,但是慢慢累积吧。

引用:https://www.cnblogs.com/xmanblue/p/5581040.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值