基于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 14:32
下一篇 2017-06-29 22:18

相关推荐

  • linux的CentOS系统启动故障与修复

        以CentOS 6为例,系统的启动流程为: 1.开机post加电自检 2.MBR引导 3.通过grub加载内核 4.加载根 5.加载系统中的第一个进程 6.进行初始化 7.出现登录界面     其中主要的启动环节是grub引导计算机,分为三个阶段:一阶段发生在mbr的446字节中;一点五阶段在mbr后续的扇区中…

    2017-09-03
  • Python 课堂笔记

    第二天

    Linux干货 2018-03-21
  • CentOS 系统启动流程[转载]

    Linux(CentOS)系统启动过程大致按照如下顺序: POST –> BootSequence(BIOS) –>Bootloader(MBR) –>Kernel(ramdisk)–>rootfs(readonly)–>switchroot–>/sb…

    Linux干货 2017-01-28
  • LVS模型练习

    本次涉及到的练习:nat练习、dr练习、FWM机制练习、mysql集群练习、httpd的集群练习、httpd和mysql结合调度的练习 yum install ipvsadm nat练习     设置:     (1)centos7.2作为lvs调度,有两块网卡,(公网地址)其中…

    Linux干货 2016-10-30
  • 搭建最基础的DNS服务

    搭建一个简单的DNS为了更方便和清晰的了解DNS的作用,通过搭建一个简单的DNS服务来学习。 在搭建之前,先简单了解一下DNS的工作原理 客户端把访问的域名传递给DNS服务器a,如果有记录,则将IP传递给客户端 DNS服务器a没有记录,则以递归方式访问其他服务器。首先访问根域 根域将匹配的一级域名DNS服务器b地址传递给DNS服务器a DNS服务器a再去访问…

    Linux干货 2017-07-26
  • 关于touch/>/>>创建同名文件的总结

    一、简介 1、touch     即创建文件或修改文件时间     语法:touch [options] file-list 2、>     创建文件,可直接把内容生成到指定文件,会覆盖源文件中的内容;也可以直接生成一个空白文件。     语法:> file…

    2017-02-18