- 博客(119)
- 收藏
- 关注
原创 部署Harbor私有镜像仓库
1.什么是HarborHarbor的中文意思是港湾,在这里它指的是一个用于存储Docker 镜像的企业级Resitry服务,它是由VMware公司开源的Docker Registry管理项目,包括权限管理,LDAP,日志审核,镜像复制等功能。2.Harbor架构与核心组件核心组件有:Nginx,用于代理registry,token等服务; db,负责储存用户权限、审计日志、D...
2020-04-11 00:10:13
390
原创 Redis(二)搭建redis集群
1.为什么需要redis集群?单个redis存在不稳定性。当redis服务宕机了,就没有可用的服务了。 单个redis的读写能力是有限的。2.redis集群概述redis集群中,每一个redis称之为一个节点。有两种类型的节点:主节点(master)、从节点(slave)。Redis 集群是一个提供在多个Redis间节点间共享数据的程序集。Redis集群并不支持处理多个keys...
2020-03-13 16:30:08
304
原创 Redis(一)redis实现主从复制以及sentinel模式部署
1.什么是redis?redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redi...
2020-03-13 13:52:35
288
原创 Mysql(五)组复制的实现
1.什么是组复制?MySQL组复制是MySQL 5.7.17开始引入的新功能,为主从复制实现高可用功能。它基于常规的MySQL复制,利用了基于行格式的二进制日志和GTID等特性。下图是MySQL组复制的整体框架图。它支持单主模型和多主模型两种工作方式(默认是单主模型)。单主模型:从复制组中众多个MySQL节点中自动选举一个master节点,只有master节点可以写,其他节点...
2020-03-13 12:19:29
262
原创 Mysql(四)实现读写分离
1.什么是读写分离?读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。2.读写分离的目的?因为数据库的“写”操作是比较耗时的,但是数据库的“读”耗时少。所以读写分离,解决的是,数据库的写入,影响了查询的效率。3.读写分离的应用...
2020-03-10 23:59:10
243
原创 Mysql(三)实现半同步复制
在实现半同步复制之前,先搞明白几种复制模式的特点和区别。1.异步复制MySQL 默认的复制即是异步的,主库在执行完客户端提交的事务后会立即将结果返给给客户端,并不关心从库是否已经接收并处理,这样就会有一个问题,主如果 crash 掉了,此时主上已经提交的事务可能并没有传到从上,如果此时,强行将从提升为主,可能导致新主上的数据不完整。2.全同步复制当主库执行完一个事务,所有...
2020-03-10 23:59:01
202
原创 Haproxy(三)实现错误重定向以及读写分离
1.错误重定向反代服务器:172.25.60.1客户端:172.25.60.2501.设置禁止该客户端访问:表示当172.25.60.250来访问的时候将页面重定向到172.25.60.1:8000下:测试:2.将访问请求为westos.org和172.25.60.1都重定向为www.westos.org1.反代服务器配置:2.客户端解析一定不要...
2020-03-10 15:02:34
196
原创 Haproxy(二)实现动静分离以及设置主备
动静分离使之haproxy中使用fronted和backend的模式来配置实现的反向代理,这种模式一般比较推荐。1.动态和静态请求在技术上,动态页面具有这些特征:动态页面是以ASP、PHP、JSP、http://ASP.net、Perl、或CGI等编程语言制作的;动态页面实际上并不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页;动态页面上的内容存在...
2020-03-10 15:02:27
406
原创 HaProxy (一) Haproxy概述以及实现负载均衡和页面监控
1.HaProxy概述Haproxy是一个特别适合于高可用环境的TCP/HTTP开源的反向代理和负载均衡软件。在七层负载均衡方面功能很强大(支持cookie track, header rewrite等),支持双机热备,支持虚拟主机,支持健康检查,同时还提供直观的监控页面,可以清晰的监控服务器集群的运行状况。2.Haproxy的配置Haproxy的配置主要分三个部分:命令行参...
2020-03-10 15:02:16
372
原创 Mysql高可用(二)主从复制
1.复制的原理复制大概可分为三个步骤:数据修改写入master数据库的binlog中。 slave的IO线程复制这些变动的binlog到自己的relay log中。 slave的SQL线程读取并重新应用relay log到自己的数据库上,让其和master数据库保持一致。复制是基于binlog的position进行的,复制之前必须保证position一致。2.复制的优点...
2020-03-05 11:52:42
289
原创 Mysql高可用(一)mysql基本架构,事物与并发控制以及基本SQL语句
1.mysql架构介绍mysql的架构大致可划分为四层:第一层客户端的连接; 第二层处理客户端连接; 第三层处理客户端的sql语句; 第四层存储引擎执行处理后的sql语句。如图:2.并发控制和事物1.事物的特性:原子性(automicity):一个事务必须被看作一个不可分割的最小单元。对于事务里的操作要么全部成功,要么全部失败,不可能执行其中一部分。这就是事...
2020-03-05 11:30:57
289
原创 nginx+tomcat实现负载均衡
1.tomcat是什么?Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行...
2020-03-01 17:26:42
203
原创 openresty+memcache实现访问加速
1.openresty是什么?OpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。2.openresty+memcache实现访问加速上一篇博客里我们用lnmp-pho+memcache 实现了网站的访问...
2020-03-01 16:18:46
340
原创 lnmp-php+memcache实现访问加速
1.memcache是什么,为什么要用它?Memcached是一款开源、高性能、分布式内存对象缓存系统,可应用各种需要缓存的场景,其主要目的是通过降低对Database的访问来加速web应用程序。许多Web应用都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示。 但随着数据量的增大、访问的集中,就会出现DB的负担加重、数据库响应恶化、 网站显示延迟等重大影响。memc...
2020-03-01 14:58:55
166
原创 部署LNMP并利用LNMP搭建wordpress论坛
1.LNMP是什么?LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP,也可以指Perl或Python。LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版...
2020-02-29 19:57:25
897
2
原创 nginx实现反向代理以及负载均衡
反向代理三台机器:客户端 172.25.60.250nginx反向代理服务器 172.25.60.3真实服务器 172.25.60.41.在nginx服务器上,编辑配置文件:要代理谁:伪装成服务器:检查语法,重新加载:解析:2.在真实服务端:3.客户端测试:负载均衡在添加一台真实服务器:172.25.60.1...
2020-02-29 12:10:15
209
原创 nginx实战练习
1.平滑升级与版本回退目的:不影响服务的正常运行的情况下进行升级或回退1.更新:当前版本:先将老版本的启动脚本拷贝:编译新版本:这里不要make install 那样会将老版本的配置覆盖:拷贝:查看进程:将老版本的主进程停止:将老版本的子进程也停止:这时,再查看,已经更新完成:2.回退:将老版本配置覆盖新版...
2020-02-27 21:51:40
821
原创 Nginx模块,进程,基本配置和基础命令
1.关于Nginx安装的补充前一篇博客对nginx做了简单描述,这里再补充一点。1.模块安装nginx是高度模块化的软件,安装时要考虑需要用到哪些模块。...
2020-02-27 15:44:33
173
原创 基于keepalived实现nginx的高可用集群
1.nginx是什么?nginx是一个开源的,支持高性能,高并发的www服务和代理服务软件。nginx因具有高并发(特别是静态资源),占用系统资源少等特性,且功能丰富而逐渐流行起来。nginx不但是一个优秀Web服务软件,还具有反向代理负载均衡功能和缓存服务功能,与lvs负载均衡及Haproxy等专业代理软件相比,Nginx部署起来更为简单,方便;在缓存功能方面,它又类似于Squid等专业...
2020-02-24 15:10:51
202
原创 基于RHCS套件实现高可用集群
1.什么是高可用集群高可用集群是指以减少服务中断时间为目的的服务器集群技术。它通过保护用户的业务程序对外不间断提供的服务,把因软件/硬件/人为造成的故障对业务的影响降低到最小程度。高可用集群的应用系统有多样化发展趋势,用途也越来越多样化,同时带来了配置及可操作性方面的复杂性,因此选择好的高可用软件至关重要。2.RHCS套件红帽集群套件(Red Hat Cluster Suite),一个...
2020-02-23 13:32:10
327
原创 基于LVS的负载均衡:NAT模式
1.NAT模式原理图这种模式下通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端的真实服务器;真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载调度过程。2.NAT的特性: 1 节点应该使用私有地址;2 节点的网关的必须指向lvs;3 节点IP和lvs服务器IP必须在同一网段内;4 请求和响应的报文...
2020-02-21 16:50:36
196
原创 基于LVS的负载均衡:TUN(ip隧道)模式
1.TUN(ip隧道)模式原理2.TUN(ip隧道)模式特征3.TUN(ip隧道)模式中的数据流向分析4.基于LVS的负载均衡:TUN(ip隧道)模式实验
2020-02-21 15:03:23
404
原创 基于LVS的负载均衡:DR模式-- ldirectord(健康检测)--keepalived(高可用集群)
1.负载均衡概述负载均衡(Load balancing),是一种计算机技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最优化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。为什么需要负载均衡?在网站的建设中,为了提升网站服务能力,基本上都会采用集群部署,这种情况下,就要将用户的请求平均的分发到服务器群当中去,这样既不会过载又能快...
2020-02-21 12:29:20
267
原创 用varnish搭建反向代理服务器,完成负载均衡以及CDN推送
1.代理是什么?正向代理和反向代理的区别?代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站。正向代理:(forward proxy)是一个位于客户端和目标服务器之间的服务器(代理服务器),为了从目标服务器取得内容,客户端向代理服务器发送一个请求并指定目标,然后代理服务器向目标服务器转交请求并将获得的内容返回给客户端,正向代理隐...
2020-02-19 17:13:22
402
原创 大型网站的架构概述
大型网站的特点以用户为中心,用户多,分布广泛流量大,并发高,数据量大安全环境恶劣,容易受到网络攻击需求多,频繁发布系统从小到大,渐进发展大型网站的架构目标高性能:提供快速访问体验(响应时间短,兵法处理能力强,吞吐量高)高可用:网站服务一直可以正常访问(负载均衡,冗余备份)可伸缩:可通过增加或减少服务器来提高或降低处理能力扩展性:方便的通过新增/移除方式,增加/减少新的功能...
2020-02-19 11:02:19
755
原创 shell编程之nginx启动管理脚本
1.资源准备(官网下载nginx)2.拷贝到虚拟机,解压,解决依赖性,原码安装3.完成启动管理脚本4.测试
2020-02-16 18:24:45
303
原创 Shell编程中的md5sum和随机数的生成
1.定义md5sum命令用于生成和校验文本中的md5值,他会逐位对文件内容进行校验,与文件名称无关,只与内容有关。md5值是一个128位的二进制数据,转换成16进制则是32(128/4)位的进制值。绝大多数情况下,不同的文件产生的md5值是不相同的。传输前后校验文件md5值,就可以知道文件传输是否出错。2.使用例如:3.注意事项md5sum有一些重要选项-...
2020-02-16 15:23:31
750
原创 Shell文本处理 awk命令
1定义awk是一个报告生成器,它拥有强大的文本格式化能力。通俗的说,我们可以利用awk命令将一些文本处理成我们需要的样子,例如表格。awk早期是在unix上实现的,我们现在在linux上使用的其实是gawk,全称为GUN awk.awk也是一门语言,它支持判断,数组,循环等功能。2.语法awk [options] 'pattern{action}' filea...
2020-02-16 14:51:29
286
原创 shell文本处理 sed命令
1.定义2.表示方法1.2s表示只替换第二行2.3.可以将想要的操作写进文件里,然后调用文件3.对字符的处理方式p 显示d 删除a 添加c 替换w 写入i 插入4.参数-e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件。...
2020-02-16 11:21:46
314
原创 Shell文本处理 grep
1.grep的作用Global search regular expression and print out the line全面搜索研究正则表达式并显示出来grep 命令是一种强大的文本搜索工具,根据用户指定的"模式"对目标文本进行匹配检查,打印匹配到的行由正则表达式或者字符及基本文本字符所编写的过滤条件1.用法:grep ^root passwd #root 开头的行gr...
2020-02-15 08:23:00
264
原创 Shell编程中的正则表达式
1.概念正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。规定一些特殊语法表示字符类、数量限定符和位置关系,然后用这些特殊语法和普通字符一起表示一个模式,这就是正则表达式(Regular Expression)。2.特点1. 灵活性、逻辑性和功能性非常的强;2...
2020-02-15 08:22:25
210
原创 Shell编程常用命令
1.作用diff 通常用来比较文件的内容,patch用来打补丁< 表示第一个文件中的内容> 表示第二个文件中的内容a --add 添加c --change 修改d --delete 删除2.示例:1.diff(将f2当作标准,输出f1如何才能变f2)2c2,3表示第一个文件的第二三行...
2020-02-15 08:21:53
645
原创 Shell编程中的环境变量
1.定义环境变量也成为全局变量,可以在创建他们的shell以及其派生出来的任意子进程shell中使用,环境变量又可以分为自定义环境变量和bash内置环境变量,环境变量可以在命令行中这只和创建,但是用户退出命令行时这些变量值就会丢失,想要永久保存,要写在文件中。2.全局文件和用户文件1.全局文件为:/etc/profile 对所有用户有效2.用户文件为:/.bash_pr...
2020-02-14 17:21:43
300
原创 Shell编程中的数组
1.shell中的数组和其他编程语言(cC++java..)一样,Shell也支持数组。数组(Array)是若干数据的集合,其中的每-份数据都称为元素(Element)。Shell并且没有限制数组的大小,玛论上可以存放无限的数据。和C++、Java、C#等类似,Shell数组元素的下标也是从0开始计数。获取数组中的元素要使用下标[],下标可以是一一个整数,也可以是一个结果为整...
2020-02-14 16:49:27
270
原创 Shell编程中的select in语句
1.select in 语句是干嘛的?select in 语句用来增强交互性,他可以显示带编号的菜单,用户输入不同的编号就能选择不同的菜单并执行不同的功能。select in是 Shell 独有的一种循环,非常适合终端这样的交互场景,这在 c ,c++,java,python 中是没有的。2.select in的用法select variable in vaiue_list...
2020-02-14 16:15:26
854
原创 Shell编程中的case in语句
1.用法case expression inpath1) 执行语句 ;;path2) 执行语句 ;;path3) 执行语句 ;;*) 默认执行语句esac2.几点说明case 、 in esac 都是 Shell 关键字, expression 表达式 pattern 表示匹配式 express 既可以是一个变量...
2020-02-14 15:54:54
1165
原创 Shell编程中的for循环
除了while和until循环,shell红还有for循环,他更加简洁明了,灵活易用。for循环还有两种不同的形式:1.c语言风格的for循环1.用法:for((exp1;exp2;exp3))do statementsdone2.运行流程:先执行exp1 再执行exp2,如果2的判断结果成立,执行循环体中的语句,否则结束整个循环 执行循环体中的语句,再执行...
2020-02-14 14:50:09
611
原创 Shell编程中的until循环
1.until循环和while循环的比较until和while循环刚好相反,当判断条件不成立时,就会进入循环,一旦判断条件成立,就会终止循环。2.until循环的用法until conditiondo statementsdone#和while循环类似3.until循环的执行流程先对condition判断,不成立时进入循环,完成一次循环。执行到do...
2020-02-14 14:13:43
385
原创 Shell编程中的while循环
1.简介while循环是shell脚本中最简单的一种循环,但条件满足时,while循环就重复执行一组语句,当条件不满足时,就退出while循环。2.用法while conditiondo statementsdone#condition 表示判断条件,statements表示执行的语句(可以多条)do 和 done 都是shell中的关键字。3.执行流程...
2020-02-14 14:02:49
865
原创 Shell中的if-test语句
1.test命令是什么?test时shell的内置命令,用来检测某个条件是否成立。它通常和if语句一起使用,,大部分if语句都依赖test。test命令有很多选项,可以进行数值,字符串还有文件三个方面的检测。它的用法为:test expression #当test 判断expression成立时,退出状态为 0,否则为非0。test命令可以缩写成 [] ,用法为 [ ...
2020-02-14 13:33:36
728
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人