Nginx详解十五:Nginx场景实践篇之负载均衡
负载均衡

GSLB(全局的负载均衡,往往是以国家为单位,或者以省为单位)

SLB

Nginx就是一个典型的SLB模型,
分为四层负载均衡和七层负载均衡

七层负载均衡可以处理应用层,如thhp信息,Nginx就是典型的七层负载均衡SLB

Nginx实现负载均衡的原理

配置语法
配置语法:upstream name {...};
默认状态:-;
配置方法:http
在/opt/app/下创建code1、code2、code3目录,并放入3个html


在/etc/nginx/conf.d/下准备好三个conf




检查配置语法并重载
nginx -tc /etc/nginx/nginx.conf
nginx -s reload -c /etc/nginx/nginx.conf


在另一台服务器上配置一个conf


每次请求都会不一样,且轮流分配(轮询),此时如果有一台机器挂了,如server2挂了,那么则会在server1和server3之间不断轮询,不再访问server2

upstream举例
upstream backend{
server backend1.example.com weight=5;
server backend1.example.com:8080;
server unix:/tmp/backen3;
server backup1.example.com:8080 backup;
server backup2.example.com:8080 backup;
}
后端服务器在负载均衡调度中的状态



不管如何刷新都只有server3提供服务,即8001和8002不服务

把访问8003的请求drop掉:iptables -I INPUT -p tcp --dport 8003 -j DROP

服务端会把请求转到server2上,后面不管怎么刷新,都会访问server2

清理掉iptable规则再访问:iptables -F

又变回server3,且一直是server3

轮询策略与加权轮询
调度算法

加权轮询:以下配置为,当有7个请求过来的时候,会有5和请求分配给8002


ip_hash:同一个IP永远只访问一个后端,解决身份验证失效的问题


不管怎么刷新,都只定位到一台服务器上

url_hash(1.7.2之后的版本支持):
配置语法:hash key [consistent];
默认状态:-;
配置方法:upstream


此时不会执行轮询,访问哪一个url,hash绑定到一个后端服务后,就永远只访问那一台机器
Nginx详解十五:Nginx场景实践篇之负载均衡的更多相关文章
- Nginx详解十:Nginx场景实践篇之Nginx静态资源场景配置
一.静态资源WEB服务 1.静态资源类型:非服务器动态运行生成的文件 2.静态资源服务场景-CDN 假设静态资源存储中心在云南,用户在北京去请求一个文件,那么就会造成一个传输的延时,而如果Nginx同 ...
- Nginx详解十六:Nginx场景实践篇之缓存服务
缓存类型: 服务端缓存 代理缓存 客户端缓存 Nginx代理缓存 配置语法 使用之前需要先定义一个proxy_cache_path配置语法:proxy_cache_path path [levels= ...
- Nginx详解十四:Nginx场景实践篇之代理服务
代理的作用 Nginx代理 正向代理 反向代理 正向代理和反向代理的区别:代理的对象不一样 正向代理代理的对象是客户端,反向代理代理的对象是服务端 反向代理: 配置语法:proxy_pass URL; ...
- Nginx详解十三:Nginx场景实践篇之防盗链
防盗链: 目的:防止资源被盗用 防盗链设置思路 首要方式:区别哪些请求是非正常的用户请求 基于http_refer防盗链配置模块(判断refer(上一步的链接)信息是否为允许访问的网站) 配置语法:v ...
- Nginx详解十一:Nginx场景实践篇之Nginx缓存
浏览器缓存: HTTP协议定义的缓存机制(如:Expires.Cache-control等) 当浏览器第一次请求的时候,浏览器是没有缓存的 第二次请求开始就有缓存了 校验过期机制 配置语法-expir ...
- Nginx详解十八:Nginx深度学习篇之Rewrite规则
Rewrite规则可以实现对url的重写,以及重定向 作用场景: 1.URL访问跳转,支持开发设计,如页面跳转,兼容性支持,展示效果等 2.SEO优化 3.维护:后台维护.流量转发等 4.安全 配置语 ...
- Nginx详解十七:Nginx深度学习篇之动静分离
动静分离:通过中间件将动态请求和静态请求分离 作用:分离资源,减少不必要的请求消耗,减少请求延时 动静分离还有个好处就是,当动态请求的后端服务出问题了,只会影响动态的部分,静态资源不影响,照样加载 如 ...
- Nginx详解八:Nginx基础篇之Nginx请求限制的配置语法与原理
Nginx的请求限制: 连接频率的限制:limit_conn_module 配置语法:limit_conn_zone key zone=name:size;默认状态:-配置方法:http 配置语法:l ...
- Nginx详解七:Nginx基础篇之Nginx官方模块
Nginx官方模块 --with-http_stub_status_module:Nginx的客户端状态,用于监控连接的信息,配置语法如下:配置语法:stub_status;默认状态:-配置方法:se ...
随机推荐
- yum 记一次安装时的报错
我电脑是centos 6.8,我先安装了openslp-2.0.0-3.el6.x86_64.rpm 然后我更改了yum源配置文件,我将updates源给禁用了,只保留os源和extras源,注意了, ...
- IntelliJ IDEA 配置
1.让IntelliJ IDEA 驼峰选择生效 驼峰选择,就是选择的时候按照驼峰规则选择单词,不是选择整个单词 让IntelliJ IDEA 驼峰选择生效 2.查看当前类中的所有方法 Alt+7 3. ...
- 自动配置redis主从和哨兵
redis shell 每次创建redis主从和哨兵服务,文件夹要复制好几个,配置文件改一大堆.繁琐还容易出错,就想通过shell脚本自动帮我配置好端口以及文件,下面就是脚本内容: redis-to ...
- C++写文件
头文件 ofstream -- 向文件写内容 实现代码 #include <vector> #include <string> #include <fstream> ...
- Python运维开发基础03-语法基础 【转】
上节作业回顾(讲解+温习60分钟) #!/usr/bin/env python3 # -*- coding:utf-8 -*- # author:Mr.chen #只用变量和字符串+循环实现“用户登陆 ...
- boost常用库案例
1.boost::any boost::any是一种通用的数据类型,可以将各种类型包装后统一放入容器内,最重要的它是类型安全的.有点象COM里面的variant. 使用方法: any::type() ...
- selenium控制浏览器
1.要把浏览器设置为全屏,否则有些元素是操作失败的,如对下图进行操作按钮是失败的,因为按钮没有显示出来 2.设置浏览器的宽.高 3.控制前进.后退(不建议使用driver.black().driver ...
- web@css样式进阶--图形字体、动画、显隐....
1.图形字体<i class="fa fa-heart"></i> 操作类名,需<link rel="stylesheet" hr ...
- LabVIEW 波形图表显示多条曲线
如何在波形图表中显示多条曲线呢? 首先看看波形图表的说明,请查看labVIEW 帮助 图 1 波形图表控件的即时帮助信息 关键就在绑定多个点. 图 2 利用捆绑函数将多个信号捆绑成簇 图 3 ...
- Win7开机卡在Windows Update 35%的解决办法
一台Win7老机器,多年未清理,用DISM++清理后,开机重启一直卡在Windows Update 35%转圈圈数小时,无法进入系统. 强制按关机键,F8进入安全模式依然同样现象. 查阅MSDN后,有 ...