前言
本文章简单介绍怎么使用宝塔的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