基于nginx实现7层http的负载均衡

一、实验环境
实验环境为三台服务器:
1. nginx负载均衡器
1. 内网ip192.168.11.100
2. 外网ip172.16.251.89
2. 提供网页服务的RS-1服务器:192.168.11.201
3. 提供网页服务的RS-2服务器:192.168.11.202
4. 拓扑如下:
二、实验配置
后台服务器配置:
1. 后台提供网页服务的两台服务器配置:
yum instll ‐y nginx
2. 创建网页并保证网页可以正常访问;
nginx负载均衡器配置:
nginx实现7层负载均衡依赖于ngx_http_upstream_module模块;
1. 安装nginx
2. 配置nginx.conf文件,nginx的负载均衡需要先配置后调用,配置需要在http上下文中,调用可以在server
location上下文中:
#设置三个虚拟主机,前2个为提供服务的,权重分别为3,2,连接3次都失败则定义为服务器失效,每次连接等待5
响应,若5秒不响应则为失效,调度算法为最少连接(默认为轮询),每个nginx worker进程都和后台服务器保持32
路长连接#
upstream websrv {
server 192.168.11.201:80 weight=3 max_fails=3 fail_timeout=5;
server 192.168.11.202:80 weight=2 max_fails=3 fail_timeout=5;

server 127.0.0.1:80 backup; #如果两个服务器都失效,则本机提供服务#
least_conn;
keepalive 32;

}
3. 虚拟服务器配置:/etc/nginx/conf.d/vhost.conf:
server {
listen 80;
server_name 192.168.11.100;
location / {
proxy_pass http://websrv;
}
}
nginx七层负载调度算法:
轮询
加权轮询
最少连接
加权最少连接
hash key
hash $request_uri:基于目标ip的会话绑定
hash $remote_addr:基于源ip的会话绑定
consistent:表示采用一致性hash算法作为负载均衡算法和后台连接做会话绑定

原创文章,作者:王子豪,如若转载,请注明出处:http://www.178linux.com/78872

(1)
王子豪王子豪
上一篇 2017-06-29
下一篇 2017-06-29

相关推荐

  • Liunx系统命令的使用格式

    Liunx系统命令的格式 基本格式如下:               ~]# COMMAND OPTIONS ARGUMENTS COMMAND:      发起一个命令,请求内核将某个二进…

    Linux干货 2016-10-28
  • 目录,inode学习笔记

    目录,inode学习笔记 1. 关于目录,文件,数据块 对于使用计算机的人而言,经常有一种 错误的认知:目录(或者说,文件夹)里面存放着文件。实际上,目录里面并不存放文件,以及文件数据。 实际上,目录是一个特殊的文件,针对这个特殊的文件也存在一些特殊的规则,比如利用命令cp /dev/null <your directory>…

    Linux干货 2017-04-01
  • 磁盘及文件系统管理应用实例

    磁盘及文件系统管理应用实例 1.创建一个10G的分区,并格式化为ext4文件系统 要求其block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包含acl 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳 [root@master ~]# fdisk /dev/sdb Command (m for…

    Linux干货 2017-08-14
  • God进程监控框架

    监控重启进程的方案有很多种: 最简单的方法,写个脚本fork进程运行,然后waitpid,如果获pid后就再次启动 最土的方法,配置cron任务,固定时间运行脚本检查进程是否存在,不存在则启动 百度使用qmail里的supervised程序,通过supervised监管进程。 优点:supervised可以启动daemon程序,对于非daemon需要采用no…

    Linux干货 2015-02-13
  • 内核编译

    下载内核并解压:tar -xvf linux-4.14.9.tar.xz -C ./linux/     接下来是    make   config  。 (具体参照    《make   config  的几种类型》) 一般采用  #  make   menuconfig   的方式 是这个样子的: 此处有可能需要几个包,选择最简单的y…

    2018-01-01
  • 计划任务&脚本进阶练习

    1、每天的2点和12点整,将/etc备份至/testdir/backup目录中,保存的文件名称格式为“etcbak-yyyy-mm-dd-HH.tar.xz” mkdir /testdir/backup vim /root/bin/etcbak.sh tar cvf /testdir/backup/etcbak-`date “+%F-%H”`.tar.xz …

    Linux干货 2017-03-26