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网站服务如何配置防盗链(推荐)
Mar 31 Servers
Nginx开启Brotli压缩算法实现过程详解
Mar 31 Servers
Nginx 502 Bad Gateway错误原因及解决方案
Mar 31 Servers
Mac环境Nginx配置和访问本地静态资源的实现
Mar 31 Servers
Nginx源码编译安装过程记录
Nov 17 Servers
解决xampp安装后Apache无法启动
Mar 21 Servers
nginx搭建NFS网络文件系统
Apr 14 Servers
使用Nginx的访问日志统计PV与UV
May 06 Servers
tomcat下部署jenkins的方法
May 06 Servers
Windows Server 修改远程桌面端口的实现
Jun 25 Servers
vscode内网访问服务器的方法
Jun 28 Servers
Zabbix对Kafka topic积压数据监控的问题(bug优化)
Jul 07 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实现框架(二)
2006/10/09 PHP
php 正确解码javascript中通过escape编码后的字符
2010/01/28 PHP
php文件压缩之PHPZip类用法实例
2015/06/18 PHP
PHP实现阿里大鱼短信验证的实例代码
2017/07/10 PHP
javascript iframe内的函数调用实现方法
2009/07/19 Javascript
js 处理URL实用技巧
2010/11/23 Javascript
Js中使用hasOwnProperty方法检索ajax响应对象的例子
2014/12/08 Javascript
javascript实现淘宝幻灯片广告展示效果
2015/04/27 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
jQuery过滤选择器经典应用
2016/08/18 Javascript
jQuery实现的弹幕效果完整实例
2017/09/06 jQuery
深入浅析javascript继承体系
2017/10/23 Javascript
详解Node 定时器
2018/02/26 Javascript
jQuery实现的简单获取索引功能示例
2018/06/04 jQuery
js字符串处理之绝妙的代码
2019/04/05 Javascript
微信小程序npm引入vant-weapp的踩坑记录
2019/08/01 Javascript
node-red File读取好保存实例讲解
2019/09/11 Javascript
详解Angular cli配置过程记录
2019/11/07 Javascript
js实现录音上传功能
2019/11/22 Javascript
js实现拾色器插件(ColorPicker)
2020/05/21 Javascript
Python 文件读写操作实例详解
2014/03/12 Python
浅谈Django的缓存机制
2018/08/23 Python
windows下Python安装、使用教程和Notepad++的使用教程
2019/10/06 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
2020/03/27 Python
通俗易懂了解Python装饰器原理
2020/09/17 Python
白色公司:The White Company
2017/10/11 全球购物
西班牙美妆电商:Perfume’s Club(有中文站)
2018/08/08 全球购物
有个性的自我评价范文
2013/11/15 职场文书
百度吧主申请感言
2014/01/12 职场文书
员工考核管理制度
2014/02/02 职场文书
学员自我鉴定
2014/03/19 职场文书
船舶工程技术专业求职信
2014/08/07 职场文书
公安派出所所长四风问题个人对照检查材料
2014/10/04 职场文书
2019毕业典礼主持词!
2019/07/05 职场文书
MYSQL主从数据库同步备份配置的方法
2021/05/26 MySQL
在虚拟机中安装windows server 2008的图文教程
2022/06/28 Servers