- 博客(48)
- 收藏
- 关注
原创 Bash的常见特性
命令历史,bash的基础特性之一history命令可以用来查看命令历史用来确认在什么时间使用了什么命令也可以用它来重复执行命令。当我们登录shell时,会读取命令历史文件中记录下的命令,在家目录的.bash_history文件中,很多黑客在入侵你的服务器后,会清除此文件的内容让你不知道他到底做了什么操作。登录shell后,新执行的命令是记录在缓存中的,命令会在用户退出时追加到命令历史文件中。我们可以通过配置用户家目录下的.bashrc或者/etc/profile文件以及/etc/profile
2021-08-30 06:42:39
285
原创 redis 扩展集群方案及memcached
redis 扩展集群方案及memcached除了 Redis 官方自带的 Redis cluster 集群之外,还有一些开源的集群解决方案可供参考使用codisCodis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的Redis Server 没有显著区别 https://github.com/CodisLabs/codis/blob/release3.2/doc/unsupported_cmds.md(命令不支持列表), 上层应用可以像使
2021-04-14 16:43:48
227
原创 Redis高可用与集群
Redis高可用与集群redis 高可用与集群:虽然 Redis 可以实现单机的数据持久化,但无论是 RDB 也好或者 AOF 也好,都解决不了单点宕机问题,即一旦 redis 服务器本身出现系统故障、硬件故障等问题后,就会直接造成数据的丢失,因此需要使用另外的技术来解决单点问题。...
2021-04-14 16:22:03
250
1
原创 Redis消息队列及其他命令
Redis消息队列及其他命令消息队列:消息队列主要分为两种,分别是生产者消费者模式和发布者订阅者模式,这两种模式 Redis 都支持生产者消费者模式:在生产者消费者(Producer/Consumer)模式下,上层应用接收到的外部请求后开始处理其当前步骤的操作,在执行完成后将已经完成的操作发送至指定的频道(channel)当中,并由其下层的应用监听该频道并继续下一步的操作,如果其处理完成后没有下一步的操作就直接返回数据给外部请求,如果还有下一步的操作就再将任务发布到另外一个频道,由另外一个消
2021-04-02 14:02:12
440
原创 Redis的数据类型
Redis的数据类型数据类型字符串(string):字符串是所有编程语言中最常见的和最常用的数据类型,而且也是 redis 最基本的数据类型之一,而且 redis 中所有的 key 的类型都是字符串。Redis数据操作添加一个 key:127.0.0.1:6379> set key1 value1OK127.0.0.1:6379> get key1"value1"127.0.0.1:6379> TYPE key1string127.0.0.1:6379>
2021-04-02 13:46:27
91
原创 Redis部署与使用
Redis部署与使用redis 部署与使用:redis 基础: 官网地址:https://redis.io/Redis和Memcached是非关系型数据库也称为NoSQL数据库MySQL、Mariadb、SQL Server、PostgreSQL、Oracle 数据库属于关系型数据(RDBMS, Relational Database Management System)redis 简介:Redis(Remote Dictionary Server)在 2009 年发布,开发者 Salvat
2021-03-29 12:06:24
197
原创 Docker基础简介
Docker基础简介Docker 是什么首先 Docker 是一个在 2013 年开源的应用程序并且是一个基于 go 语言编写是一个开源的 pass 服务(Platform as a Service,平台即服务的缩写),go 语言是由google 开发,docker 公司最早叫 dotCloud 后由于 Docker 开源后大受欢迎就将公 司改名为 Docker Inc,总部位于美国加州的旧金山,Docker 是基于 linux 内核实 现,Docker 最早采用 LXC 技术(LinuX Cont
2021-02-23 17:31:09
129
原创 HAProxy高级配置选项
四层与七层的区别:• 四层: • 在四层负载设备中,把client发送的报文目标地址(原来是负载均衡设备的IP地址),根据均衡设备设置的选择web服务器的规则选择对应的web服务器IP地址,这样client就可以直接跟此服务器建立TCP连接并发送数据。• 七层: • 七层负载均衡服务器起了一个代理服务器的作用,服务器建立一次TCP连接要三次握手,而client要访问webserver要先与七层负载设备进行三次握手后建立TCP连接,把要访问的报文信息发送给七层负载均衡;然后七层负
2021-02-22 18:53:39
160
原创 HAProxy调度算法
HAProxy调度算法HAProxy 静态调度算法• balance: 指明对后端服务器的调度算法,配置在listen或backend• 静态算法:按照事先定义好的规则轮询公平调度,不关心后端服务器的当前负载、链接数和相应速度等,且无法实时修改权重,只能重启后生效。 • static-rr:基于权重的轮询调度,不支持权重的运行时调整及后端服务器慢启动,其后端主机数量没有限制 • first:根据服务器在列表中的位置,自上而下进行调度,但是其只会当第一台服务器的连接数达到上限,新请求才会
2021-02-17 16:49:16
278
原创 HAProxy的基础配置
HAProxy的基础配置HAProxy组成• 程序环境: 主程序:/usr/sbin/haproxy 配置文件:/etc/haproxy/haproxy.cfg Unit file:/usr/lib/systemd/system/haproxy.service• 配置段: • global:全局配置段 进程及安全配置相关的参数 性能调整相关参数 Debug参数 • proxies:代理配置段 def
2021-02-05 17:41:35
124
原创 负载均衡及HAProxy介绍安装
什么是负载均衡:• 负载均衡(Load Balance,简称LB)是一种服务或基于硬件设备等实现的高可用反向代理技术,负载均衡将特定的业务(web服务、网络流量等)分担给指定的一个或多个后端特定的服务器或设备,从而提高了公司业务的并发处理能力、保证了业务的高可用性、方便了业务后期的水平动态扩展。• 阿里云SLB介绍为什么使用负载均衡:• Web服务器的动态水平扩展 • 对用户无感知• 增加业务并发访问及处理能力 • 解决单服务器瓶颈问题 单机故障• 节约公网IP地址
2021-02-02 15:49:21
187
1
原创 Nginx四层代理功能及Nginx优化和Tengine介绍
Nginx四层代理功能和Tengine编译安装ngx_stream_core_modulengx_stream_core_module模块 模拟反代基于tcp或udp的服务连接,即工作于传输层的反代或调度器stream { ... } 定义stream相关的服务;Context:main stream { upstream mysqlsrvs { server 192.168.8.2:3306; server 192.168.8.3:3306; least_conn;
2020-11-10 22:41:47
1285
原创 Nginx反向代理实现均衡负载及调度算法
Nginx反向代理实现均衡负载及调度算法ngx_http_upstream_modulengx_http_upstream_module模块 将多个服务器定义成服务器组,而由proxy_pass, fastcgi_pass等指令进行引用upstream name { ... } 定义后端服务器组,会引入一个新的上下文 默认调度算法是wrr Context: http upstream httpdsrvs { server ... server... ... }server
2020-11-10 21:44:24
199
原创 Nginx实现fastcgi反向代理
Nginx实现fastcgi反向代理ngx_http_fastcgi_module模块 转发请求到FastCGI服务器,不支持php模块方式fastcgi_pass address; address为后端的fastcgi server的地址 可用位置:location, if in locationfastcgi_index name; fastcgi默认的主页资源 示例:fastcgi_index index.php; fastcgi_param parameter value [if_
2020-11-10 17:16:29
325
原创 Nginx的反向代理
Nginx的反向代理反向代理:reverse proxy,可代理外网用户的请求到内部的指定web服务器,并将数据返回给用户nginx除了可以在企业提供高性能的web服务之外,另外还可以将本身不具备的请求通过某种预定义的协议转发至其它服务器处理,不同的协议就是nginx服务器与其他服务器进行通信的一种规范主要在不同的场景使用以下模块实现不同的功能: ngx_http_proxy_module: 将客户端请求以http协议转发至后端服务器 ngx_http_fastcgi_module:将客户端
2020-11-10 14:16:02
286
原创 Nginx的第三方模块及其它模块介绍
Nginx的第三方模块第三模块是对nginx 的功能扩展,第三方模块需要在编译安装nginx 的时候使用参数--add-module=PATH指定路径添加,有的模块是由公司的开发人员针对业务需求定制开发的,有的模块是开源爱好者开发好之后上传到github进行开源的模块,nginx支持第三方模块,需要重新编译源码才能支持开源的echo模块,实现输出变量等信息 https://github.com/openresty/echo-nginx-module示例: #yum install git
2020-11-08 10:54:10
1522
原创 Nginx的http协议的相关配置及web服务的基本模块配置
Nginx的http协议的相关配置及实现web服务器http协议相关的配置结构http { ... ... 各server的公共配置 server { 每个server用于定义一个虚拟主机 ... } server { ... server_name 虚拟主机名 root 主目录 alias 路径别名
2020-11-06 10:19:52
244
原创 Nginx的全局配置和性能优化
nginx配置配置文件的组成部分: 主配置文件:nginx.conf 子配置文件 include conf.d/*.conf fastcgi, uwsgi,scgi等协议相关的配置文件 mime.types:支持的mime类型主配置文件的配置指令: directive value [value2 ...];注意: (1) 指令必须以分号结尾 (2) 支持使用配置变量 内建变量:由Nginx模块引入,可直接引用 自定
2020-11-03 23:17:30
263
原创 Nginx的编译安装和功能介绍
Nginx的编译安装和功能介绍nginx介绍nginx: engine X,是由1994年毕业于俄罗斯国立莫斯科鲍曼科技大学的同学为俄罗斯rambler.ru公司开发的,开发工作最早从2002年开始,第一次公开发布时间是2004年10月4日,版本号是0.1.0nginx有商业版和社区版,2019年3月11日F5 Networks 6.7亿美元的价格收购nginx 是免费,开源,高性能的HTTP和反向代理服务器,邮件代理服务器,通用TCP/UDP代理服务器解决C10K问题(10K Connectio
2020-11-03 15:21:03
283
原创 I/O的五种模型和select与epoll工作原理
高性能WEB服务NGINX用户速度体验的1-3-10原则性能影响有很多研究都表明,性能对用户的行为有很大的影响:79%的用户表示不太可能再次打开一个缓慢的网站47%的用户期望网页能在2秒钟以内加载40%的用户表示如果加载时间超过三秒钟,就会放弃这个网站页面加载时间延迟一秒可能导致转换损失7%,页面浏览量减少11%8秒定律:用户访问一个网站时,如果等待网页打开的时间超过8秒,会有超过30%的用户放弃等待影响用户体验的几个因素客户端硬件配置客户端网络速率客户端与服务端距离服务端网络
2020-11-03 11:57:23
358
原创 MySQL数据库(初识数据库)
MySQL数据库数据的时代涉及的数据量大数据不随程序的结束而消失数据被多个应用程序共享大数据数据库的发展史萌芽阶段:文件系统 使用磁盘文件来存储数据初级阶段:第一代数据库 出现了网状模型、层次模型的数据库中级阶段:第二代数据库 关系型数据库和结构化查询语言高级阶段:新一代数据库 “关系-对象”型数据库数据库管理系统数据库是数据的汇集,它以一定的组织形式存于存储介质上DBMS是管理数据库的系统软件,它实现数据库系统的各种功能。是数据库系统的核心D
2020-08-15 22:31:37
953
原创 DNS服务和BIND
DNS服务和BINDDNS服务DNS:Domain Name System 应用层协议 C/S,53/udp, 53/tcpBIND:Bekerley Internat Name Domain ISC (www.isc.org) 本地名称解析配置文件:hosts /etc/hosts %WINDIR%/system32/drivers/etc/hosts 122.10.117.2 www.magedu.com 93.46.8.89 w
2020-07-12 23:12:53
410
原创 Linux运维自动化之系统部署
运维自动化之系统部署运维自动化发展历程及技术应用安装程序CentOS系统安装 系统启动流程: bootloader-->kernel(initramfs)-->rootfs-->/sbin/initanaconda: 系统安装程序 gui:图形窗口 tui: 基于图形库curses的文本窗口安装程序启动过程MBR:isolinux/boot.catstage2: isolinux/isolinux.bin配置文件:isolinux/iso
2020-07-06 00:10:45
503
原创 Linux网络时间服务和chrony
网络时间服务和chrony时间同步:多主机协作工作时,各个主机的时间同步很重要,时间不一致会造成很多重要应用的故障,如:加密协议,日志,集群等, 利用NTP(Network Time Protocol) 协议使网络中的各个计算机时间达到同步。目前NTP协议属于运维基础架构中必备的基本服务之一时间同步实现:ntp,chronyntp:将系统时钟和世界协调时UTC同步,精度在局域网内可达0.1ms,在互联网上绝大多数的地方精度可以达到1-50ms,项目官网:http://www.ntp.orgchron
2020-07-01 08:30:06
326
原创 Linux的加密和安全
Linux的加密和安全墨菲定律墨菲定律:一种心理学效应,是由爱德华·墨菲(Edward A. Murphy)提出的,原话:如果有两种或两种以上的方式去做某件事情,而其中一种选择方式将导致灾难,则必定有人会做出这种选择主要内容: 任何事都没有表面看起来那么简单 所有的事都会比你预计的时间长 会出错的事总会出错 如果你担心某种情况发生,那么它就更有可能发生安全机制信息安全防护的目标 保密性 Confidentiality 完整性 Integrity
2020-06-30 08:19:48
705
2
原创 Linux安全加固SElinux
Linux安全加固SElinuxSELinux介绍SELinux:Security-Enhanced Linux, 是美国国家安全局(NSA=The National Security Agency)和SCC(Secure Computing Corporation)开发的Linux的一个强制访问控制的安全模块。2000年以GNU GPL发布,Linux内核2.6版本后集成在内核中DAC:Discretionary Access Control自由访问控制MAC:Mandatory Access C
2020-06-15 07:40:33
342
原创 Linux系统启动和内核管理
Linux系统启动和内核管理Linux组成Linux: kernel+rootfs kernel: 进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能 rootfs:程序和glibc 库:函数集合, function, 调用接口(头文件负责描述) 程序:二进制执行文件内核设计流派: 单内核(monolithic kernel):Linux 把所有功能集成于同一个程序,分层实现不同功能,系统庞大复杂 微内核(micro kernel
2020-06-14 23:43:07
462
原创 Linux系统的进程、系统性能和计划任务
进程、系统性能和计划任务进程概念内核功用:进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能等Process: 运行中的程序的一个副本,是被载入内存的一个指令集合 进程ID(Process ID,PID)号码被用来标记各个进程 UID、GID、和SELinux语境决定对文件系统的存取和访问权限 通常从执行进程的用户来继承 存在生命周期task struct:Linux内核存储进程信息的数据结构格式task list:多个任务的的task struct组成的链
2020-05-30 22:18:47
231
原创 基础网络协议和管理
网络协议和管理网络应用程序Web 浏览器(Chrome、IE、Firefox等)即时消息(QQ、微信、钉钉等)电子邮件(Outlook、foxmail 等)协作(视频会议、VNC、Netmeeting、WebEx 等)web网络服务(apache,nginx,IIS) 文件网络服务(ftp ,nfs,samba) 数据库服务( MySQL,MariaDB,MongoDB) 中间件服务(Tomcat,JBoss) 安全服务(Netfilter)资源共享的功能和优点数据和应用程序资源
2020-05-26 23:39:01
549
原创 RAID以及LVM逻辑卷
RAID以及LVM逻辑卷什么是RAIDRAID:Redundant Arrays of Inexpensive(Independent) Disks1988年由加利福尼亚大学伯克利分校(University of CaliforniaBerkeley) “A Case for Redundant Arrays of Inexpensive Disks”多个磁盘合成一个“阵列”来提供更好的...
2020-05-07 08:07:06
216
原创 Linux磁盘存储和文件系统
磁盘存储和文件系统设备文件I/O Ports: I/O设备地址一切皆文件:open(), read(), write(), close()设备类型: 块设备:block,存取单位“块”,磁盘 字符设备:char,存取单位“字符”,键盘设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信设备号码: 主设备号:major number, 标识设备类型...
2020-05-05 00:19:48
916
原创 Linux的软件包管理
软件包管理软件运行和编译软件包基础ABI:Application Binary Interface(应用程序二进制接口) Windows与Linux不兼容 ELF(Executable and Linkable Format) PE(Portable Executable) 库级别的虚拟化: Linux: WINE ...
2020-04-29 22:50:45
476
原创 SHELL编程脚本基础及进阶
程序程序 程序:算法+数据结构 数据:是程序的核心 数据结构:数据在计算机中的类型和组织方式 算法:处理数据的方式程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据shell程序:提供了编程能力,解释执行程序的执行方式计算机:运行二进制指令编程语言:人与计算机之间交互的语言低级编程语言:...
2020-04-22 08:22:19
556
原创 Linux系统的用户、组和权限
用户、组和权限资源分派: Authentication:认证--区分不同的用户 Authorization:授权--根据不同用户实施不同权限 Accouting|Audition:审计--知道某个用户什么时间做了什么 用户 USER登录后从验证中心获取令牌token,identityLinux用户:Username/UID管理员:root, 0普通用户:...
2020-04-13 23:56:27
274
原创 标准I/O和管道小记
标准输入和输出程序:指令+数据 读入数据:Input 输出数据:Output打开的文件都有一个fd: file descriptor (文件描述符) 文件描述符所在位置:/proc每一个数字都对应一个应用程序的进程。可以看到3对应的就是使用命令查看的linux.txt的命令进程,0,1,2对应的就是下面要说的Linux提供的三种I/O设备。Linux给程序提供三种 ...
2020-04-07 23:37:44
208
原创 通配符与正则表达式(更新中)
文件通配符* 匹配零个或多个字符,但是不能匹配隐藏文件? 匹配任何单个字符~ 当前用户家目录~mage 用户mage家目录~+ 当前工作目录~- 前一个工作目录[0-9] 匹配数字范围,范围内是或的关系,只取一个值[a-z]:字母,需要注意字母的范围取值顺序为 a.A.b.B.c.C...[A-Z]:字母,需要注意字母的范围取值顺序为 a.A.b.B.c.C......
2020-03-17 23:45:56
125
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人