Nginx配置之实现多台服务器负载均衡


Posted in Servers onAugust 02, 2021

Nginx负载均衡服务器: IP:192.168.0.4(Nginx-Server)

Web服务器列表:

Web1: 192.168.0.5(Nginx-Node1/Nginx-Web1)

Web2:192.168.0.7(Nginx-Node2/Nginx-Web2)

实现目的:用户访问Nginx-Server时,通过Nginx负载均衡到Web1和Web2服务器。

Nginx负载均衡服务器的nginx.conf

配置注释如下:

events
{
use epoll;
worker_connections 65535;
}
http
{
##upstream的负载均衡,四种调度算法##
#调度算法1:轮询.每个请求按时间顺序逐一分配到不同的后端服务器,
#如果后端某台服务器宕机,故障系统被自动剔除,使用户访问不受影响
upstream webhost {
server 192.168.0.5:6666 ;
server 192.168.0.7:6666 ;
}
#调度算法2:weight(权重).可以根据机器配置定义权重.权重越高被分配到的几率越大
upstream webhost {
server 192.168.0.5:6666 weight=2;
server 192.168.0.7:6666 weight=3;
}
#调度算法3:ip_hash. 每个请求按访问IP的hash结果分配,这样来自同一个IP的访客固定访问一个后端服务器,
#有效解决了动态网页存在的session共享问题
upstream webhost {
ip_hash;
server 192.168.0.5:6666 ;
server 192.168.0.7:6666 ;
}
#调度算法4:url_hash(需安装第三方插件).此方法按访问url的hash结果来分配请求,
#使每个url定向到同一个后端服务器,可以进一步提高后端缓存服务器的效率.
#Nginx本身是不支持url_hash的,如果需要使用这种调度算法,必须安装Nginx 的hash软件包
upstream webhost {
server 192.168.0.5:6666 ;
server 192.168.0.7:6666 ;
hash $request_uri;
}
#调度算法5:fair(需安装第三方插件).这是比上面两个更加智能的负载均衡算法.
#此种算法可以依据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间来分配请求,
#响应时间短的优先分配.Nginx本身是不支持fair的,如果需要使用这种调度算法,必须下载Nginx的upstream_fair模块

#虚拟主机的配置(采用调度算法3:ip_hash)
server
{
listen 80;
server_name mongo.demo.com;
#对 “/” 启用反向代理
location / {
proxy_pass http://webhost;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#以下是一些反向代理的配置,可选.
proxy_set_header Host $host;
client_max_body_size 10m; #允许客户端请求的最大单文件字节数
client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数,
proxy_connect_timeout 90; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 90; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 90; #连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的设置
proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k;
#设定缓存文件夹大小,大于这个值,将从upstream服务器传
}
}
}
配置 192.168.0.4(Nginx-Server)

创建文件夹准备存放配置文件

$ mkdir -p /opt/confs
$ vim /opt/confs/nginx.conf
events
{
use epoll;
worker_connections 65535;
}
http
{
upstream webhost {
ip_hash;
server 192.168.0.5:6666 ;
server 192.168.0.7:6666 ;
}
server
{
listen 80;
server_name mongo.demo.com;
location / {
proxy_pass http://webhost;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
}
启动负载均衡服务器192.168.0.4(Nginx-Server)

配置 192.168.0.5(Nginx-Node1/Nginx-Web1)

创建文件夹用于存放web页面

$ mkdir -p /opt/html
$ vim /opt/html/index.html
编辑内容如下:

The host is 192.168.0.5 - Node 1

启动192.168.0.5(Nginx-Node1/Nginx-Web1)

配置192.168.0.7(Nginx-Node2/Nginx-Web2)

创建文件夹用于存放web页面

$ mkdir -p /opt/html
$ vim /opt/html/index.html
编辑内容如下:

The host is 192.168.0.7 - Node 2

启动192.168.0.7(Nginx-Node2/Nginx-Web2)

到此这篇关于Nginx配置之实现多台服务器负载均衡的文章就介绍到这了,更多相关Nginx配置负载均衡内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
为什么 Nginx 比 Apache 更牛逼
Mar 31 Servers
nginx proxy_cache 缓存配置详解
Mar 31 Servers
Nginx服务器如何设置url链接
Mar 31 Servers
Nginx Rewrite使用场景及配置方法解析
Apr 01 Servers
Nginx+Tomcat负载均衡集群的实现示例
Oct 24 Servers
HDFS免重启挂载新磁盘
Apr 06 Servers
Windows Server 2016 配置 IIS 的详细步骤
Apr 28 Servers
KVM基础命令详解
Apr 30 Servers
nginx配置限速限流基于内置模块
May 02 Servers
git stash(储藏)的用法总结
Jun 25 Servers
Zabbix对Kafka topic积压数据监控的解决方案
Jul 07 Servers
源码安装apache脚本部署过程详解
Sep 23 Servers
nginx服务器的下载安装与使用详解
Aug 02 #Servers
nginx反向代理配置去除前缀案例教程
Jul 26 #Servers
nginx结合openssl实现https的方法
nginx配置虚拟主机的详细步骤
nginx的zabbix 5.0安装部署的方法步骤
nginx请求限制配置方法
使用goaccess分析nginx日志的详细方法
Jul 09 #Servers
You might like
php小偷相关截取函数备忘
2010/11/28 PHP
PHP多线程批量采集下载美女图片的实现代码(续)
2013/06/03 PHP
php表单提交与$_POST实例分析
2015/01/26 PHP
PHP实现搜索地理位置及计算两点地理位置间距离的实例
2016/01/08 PHP
老生常谈PHP面向对象之解释器模式
2017/05/17 PHP
YUI的Tab切换实现代码
2010/04/11 Javascript
ModelDialog JavaScript模态对话框类代码
2011/04/17 Javascript
javascript间隔定时器(延时定时器)学习 间隔调用和延时调用
2014/01/13 Javascript
js toFixed()方法的重写实现精度的统一
2014/03/06 Javascript
jQuery中:disabled选择器用法实例
2015/01/04 Javascript
JQuery插件jcarousellite的参数中文说明
2015/05/11 Javascript
使用nodejs开发cli项目实例
2015/06/03 NodeJs
javascript学习笔记之函数定义
2015/06/25 Javascript
JavaScript仿聊天室聊天记录
2016/12/27 Javascript
Angular.JS通过指令操作DOM的方法
2017/05/10 Javascript
vue中使用cropperjs的方法
2018/03/01 Javascript
JavaScript设计模式之建造者模式实例教程
2018/07/02 Javascript
在小程序中集成redux/immutable/thunk第三方库的方法
2018/08/12 Javascript
JS实现checkbox互斥(单选)功能示例
2019/05/04 Javascript
微信小程序实现form表单本地储存数据
2019/06/27 Javascript
javascript+css实现进度条效果
2020/03/25 Javascript
Djang的model创建的字段和参数详解
2019/07/27 Python
python 经典数字滤波实例
2019/12/16 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
2020/01/14 Python
在python image 中实现安装中文字体
2020/05/16 Python
python3 中时间戳、时间、日期的转换和加减操作
2020/07/14 Python
Python新建项目自动添加介绍和utf-8编码的方法
2020/12/26 Python
HTML5中Canvas与SVG的画图原理比较
2013/01/16 HTML / CSS
雅高酒店中国:Accorhotels.com China
2018/03/26 全球购物
Lookfantastic俄罗斯:欧洲在线化妆品零售商
2019/08/06 全球购物
澳大利亚和新西兰最大的在线旅行社之一:Aunt Betty
2019/08/07 全球购物
实习教师自我鉴定
2013/12/12 职场文书
读书小明星事迹材料
2014/05/03 职场文书
学习教师法的心得体会
2014/09/03 职场文书
MySQL之高可用集群部署及故障切换实现
2021/04/22 MySQL
使用Ajax实现进度条的绘制
2022/04/07 Javascript