自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(227)
  • 收藏
  • 关注

原创 【ansible】使用keepalived+haproxy实现高可用

前期准备vim ansible/hosts 建立webservers组visudo中方法一[devops@server8 ansible]$ cat playbook4.yml ---- name: deploy apache gather_facts: yes hosts: webservers vars: http_port: 80 tasks: - name: install apache yum: name: ..

2020-09-07 16:54:20 1536 1

原创 使用playbook实现haproxy负载均衡

一. playbook[devops@server8 ansible]$ cat playbook4.yml ---- name: deploy apache gather_facts: yes hosts: webservers vars: http_port: 80 tasks: - name: install apache yum: name: - httpd - php state: present

2020-08-29 17:11:30 1167

原创 负载均衡的高可用集群(7)------pacemaker + corosync + haproxy 实现高可用

实验前提server1 和 server2 是调度器,server3 和 server4 是服务器调度器sever1:172.25.21.1sever2:172.25.21.2关闭 keepalived 和 httpd,并打开pcsd[root@server1 ~]# systemctl stop keepalived[root@server1 ~]# systemctl start pcsd #打开pcsd服务[root@server1 ~]# pcs c...

2020-08-26 00:06:24 1221

原创 负载均衡的高可用集群(6)------haproxy + keepalived 实现高可用负载均衡

实验前提server1 和 server2 是调度器,server3 和 server4 是服务器sever1:172.25.21.1sever2:172.25.21.2sever3:172.25.21.3sever4:172.25.21.4调度器中进行配置haproxy+keepalived在server1和server2这两个调度器都要进行配置1)keepalivedyum install -y...

2020-08-25 23:33:34 246

原创 负载均衡的高可用集群(5)------haproxy的动静分离与读写分离

haproxy的动静分离1)实验前提server2(haproxy):安装 haproxyserver3(静态服务器):在apache的默认发布目录下创建一个 images目录,并放一张图片server4(动态服务器):安装php ,修改回 80 端口(之前做过端口转发,所以需要改回来)2)server4中进行设置安装php/etc/httpd/conf/httpd.con 中修改端口vim index.php在页面中进行访问3)server3 中进...

2020-08-25 22:33:14 207

原创 负载均衡的高可用集群(4)------haproxy的日志、算法实现、端口设定转发

算法实现1. 保证不来回切换代码:[root@server2 haproxy]# vim haproxy.cfg 82 backend app 83 #balance roundrobin 84 balance source 85 server vm3 172.25.21.3:80 check 86 server vm4 172.25.21.4:80 check[root@server2 haproxy]# systemctl.

2020-08-25 20:57:25 335 1

原创 数据库的分布式集群

前期准备(三台虚拟中的操作一致,都需要初始化数据库!!)为了是实验环境的纯净,我重新初始化了数据库。这一步可以根据大家的意愿看是否选择初始化。同时需要要注意:在三台虚拟机上的操作是一致的,某些需要修改的东西我会直接标注出来。server1 :172.25.14.1server3 :172.25.14.3 # 注意在/etc/my.cnf中需要修改IP,不能直接将server1的复制过去server4 :172.25.14.4 # 注意在/etc/my.cnf中需...

2020-08-19 17:27:05 298

原创 忘记mysql登陆密码怎么办?

有时侯我们可能会忘记数据库的登陆密码,本节将讲述如何修改mysql的登陆密码!1. 跳过授权表并重启mysqlvim /etc/my.cnf skip-grant-tables #添加参数/etc/init.d/mysqld restart #进行重启2. 进入并清空root的密码mysql -p> updata mysql.user set authentication_string='' where user='root';> exitvim /

2020-08-19 11:25:41 314

原创 【LAMP架构】------phpMyAdmin的使用

一. 添加数据库管理工具phpMyAdmin因为我的压缩包是zip格式,在解压的过程中提示了我没有unzip这个命令。所以先进行安装然后再解压[root@server1 ~]# yum install unzip -y[root@server1 ~]# unzip phpMyAdmin-5.0.2-all-languages.zipmv 移动到 /usr/local/lamp/nginx/html 下二. 设置nginx直接访问www.westos.org也可,直接访问172

2020-08-18 17:44:37 159

原创 【图解】ERROR 1396 (HY000): Operation CREATE USER failed for ‘root‘@‘172.25.14.%‘

问题create创建用户报错:ERROR 1396 (HY000): Operation CREATE USER failed for 'root'@'172.25.14.%'解决应该是之前创建,执行删除的时候没有删除干净。此时重新进行删除mysql> drop user root@'172.25.14.%';Query OK, 0 rows affected (0.01 sec)mysql> flush privileges;Query OK, 0 rows affected

2020-08-18 11:31:36 17085 1

原创 【图解】mysql -p出现了Segmentation fault,无法登入数据库的解决办法

问题在安装好mysql后,使用mysql -p出现了Segmentation fault解决方法在解压好的安装包里面查找 terminal.c文件注释掉 char buf[TC_BUFSIZE] ;并且使下面的 area = NULL;修改成功后重新进行cmake make makeinstall...

2020-08-17 18:21:42 1648 2

原创 【LAMP架构】------mysql的安装与启动

1. 前期准备因为安装mysql时需要的进行make编译,所以直接将运行内存给大一点在安装过程中需要的软件mysql-boost-8.0.21.tar.gz #在安装8.0的时候需要用到cmake3cmake3:cmake3-3.6.1-2.el7.x86_64.rpm cmake3-data-3.6.1-2.el7.noarch.rpmjsoncpp:安装时cmake3时具有依赖性,所以要安装此软件解决依赖性问题。jsoncpp-0.10.5-2.el7.x86_6...

2020-08-17 18:14:05 245

原创 将memcache模块添加到php

2020-08-15 09:25:53 145

原创 php的安装与配置

软件下载:https://www.php.net/1.前期准备解压所下载的php,此时提示缺少bzip2yum install bzip2 -y 进行安装解压后进入php目录安装php所依赖的软件(我直接将当时所碰见的一次性安装好了)oniguruma这两个是我自己下载的rpm包,除了这两个,其余都可以通过使用yum源安装成功(执行命令要注意路径!)所匡选的地方是为了解决依赖性而安装的其余软件。。2. 安装步骤软件编译:# cd php-7.4.6# ./co

2020-08-15 09:25:04 841

原创 负载均衡的高可用集群(3)------haproxy实现负载均衡(可以使用网页监控)

一. 概念HAProxy是一个特别适用于高可用性环境的TCP/HTTP开源的反向代理和负载均衡软件。实现了一种事件驱动,单一进程模型,支持非常大的并发连接,是因为事件驱动模型有更好的资源和时间管理的用户端(user-space)实现这些业务在7层负载均衡方面的功能很强大(支持cookie track, header rewrite等等) 支持双机热备 支持虚拟主机 支持健康检查 同时还提供直观的监控页面,可以清晰实时的监控服务集群的运行状况。 同时支持Linux 2.6内核中System

2020-08-13 17:46:39 210

原创 【图解】linux中安装WPS

本篇博客也将解决下面的缺少依赖性的问题error: Failed dependencies: libGLU.so.1()(64bit) is needed by wps-office-10.1.0.6758-1.x86_64安装步骤进入到安装包存放的目录,使用命令"yum localinstall wps-office-10.1.0.6758-1.x86_64.rpm -y",该命令在安装包的同时也会将相应的依赖关系软件安装,这样就不会包依赖关系错误。打开WPS...

2020-08-13 10:10:50 2598

原创 【图解】linux下安装QQ

QQ Linux版下载地址1.选择架构Linux QQ 目前支持x64(x86_64、amd64)、arm64(aarch64)、mips64(mips64el)三种架构,每种架构支持Debian系、红帽系、Arch Linux系、其它发行版中的一种或几种。查看方法:uname -a我的查看结果显示应该选择x64的架构 2. 选择格式因为我使用的是redhat,所以选择下载的是rpm包。大家可以根据自己的系统来进行选择。3. redhat安装步骤需要root.

2020-08-13 09:38:30 9767

原创 【 nginx 】------平滑升级与回退

区分两个目录cd /usr/local/lamp/nginx老版本的安装目录(可在./configure时指定)cd nginx-1.19.1/objsnginx-1.19.1是新版本(在家目录下)1. nginx的平滑升级准备两个不同版本的nginx的压缩包,低版本的应该先编译好(nginx的编译)新版本的编译过程中,执行./configure时一定要和老版本执行的语句一模一样!!此处只执行make,不能执行make install切换到/usr/local/l

2020-08-11 23:46:14 221

原创 【企业实战】------nginx的编译

nginx学习一. 实验前提为了保证实验环境的纯净,删除了server1并重新创建了,此时不需要按照创建子机的方法重新添加,只需要重启vm1就可以生效。二. 安装及编译[root@server1 ~]# tar zxf nginx-1.18.0.tar.gz [root@server1 ~]# cd nginx-1.18.0[root@server1 nginx-1.18.0]# ./configure --help[root@server1 nginx-1.18.0]..

2020-08-11 22:57:50 187

原创 ipvsadm启动报错: /bin/bash: /etc/sysconfig/ipvsadm: No such file or directory

问题ipvsadm启动报错journalctl -xe或查看日志可发现错误是:/bin/bash: /etc/sysconfig/ipvsadm: No such file or directory解决ipvsadm --save > /etc/sysconfig/ipvsadm 创建一下就可以正常启动了

2020-08-11 10:30:16 1985 1

原创 负载均衡下的高可用集群(2)------LVS 与 keepAlived 实现高可用集群的负载均衡(DR实现)

一. 概念1)LVSLVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。特点:可伸缩网络服务的几种结构,它们都需要一个前端的负载调度器(或者多个进行主从备份)。先分析实现虚拟网络服务的主要技术,指出IP负载均衡技术是在负载调度器的实现技术中效率最高的。 在已有的IP负载均衡技术中,主要有通过网络地址转换(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,VS/NAT技术(V.

2020-08-11 00:05:42 367

原创 高可用集群(1)------pacemaker 与 corosync 搭建高可用集群

1. 定义1)高可用集群高可用集群(High Availability Cluster)简称HA Cluster - 简单的说,集群(cluster)就是一组计算机。它们作为一个整体,向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(node)。高可用性集群(HA cluster)是指如单系统一样地运行并支持(计算机)持续正常运行的一个主机群。 - 高可用集群的出现是为了减少由计算机硬件和软件易错性所带来的损失。如果某个节点失效,它的备援节点将在几秒钟的时间内接管它的...

2020-08-10 22:01:07 669

原创 【企业实战】------封装虚拟母机并安装vm1-vm4

一. 封装母机1. 安装虚拟机想要安装虚拟机的同学可以先下载好对应的镜像文件,我本次要安装企业8版本和企业7版本, 所以下载好了各自对应的镜像文件首先我们需要打开“Virtual Machine Manager”,此处有两种办法可以打开(请自行选择)方法一:输入代码virt-manager即可出现( 注意: 如果打开失败,那就先使用su -在输入密码后先切换到超级用户下再virt-manager即可)方法二:如下图所示,不需要输入命令就可直接打开。注意:有些人的真机版本低可能需要输入密码

2020-08-09 10:59:07 594

原创 Python------面向对象与面向过程的区别

面向过程编程1)概念“面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。2) 特性模块化 、流程化3)优缺点性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能时最重要的因素。(缺点)但是没有面向对象易维护、易复用、易扩展函数式编程概念及思想函数式编程是种编程方

2020-08-03 11:48:58 1769

原创 Python的高级特性------异常处理机制

如图所示,使用python时有时会遇到一些错误。一旦有错误就需要我们对其进行一些处理,此时就可以应用异常处理机制异常处理机制 - 在Python当中,如果一个程序在运行的时候出错,Python解释器会自动的在出错的地方生成一个异常对象 - Python解释器会自动的在出错地方的附近寻找有没有对这个异常对象处理的代码 - 所谓异常处理代码就是try......excepct......else......finally语句 - 如果没有,Python解释器会自动的将这个异常对象抛给其调用函数,

2020-08-03 10:31:09 177

原创 【详解】Python-----------闭包和装饰器

装饰器的定义器指的是工具,而程序中的函数就是具备某一功能的工具,所以装饰器指的是为被装饰器对象添加额外功能的工具/函数,装饰器就是用来装饰一个函数或是一个类的工具装饰器其实就是在遵循以下两个原则(开放封闭原则)的前提下为被装饰对象添加新功能开放封闭对扩展开放对已经实现的功能代码块封闭,不修改被装饰对象的源代码装饰器的实现 - 装饰器本质上是一个函数,该函数是用来处理其他函数。 - 它可以让其他函数在不需要求改代码的前提下增加额外的功能 - 并且装饰器的返回值也是一

2020-08-03 10:08:44 382

原创 python小知识------return和yield的区别

函数中return和yield的区别是什么?函数中遇到return就结束执行;如果在函数中包含yield关键字,调用函数的返回值则是生成器1)return# 理解return关键字的工作原理def welcome(): while True: print('step 1') # 函数中遇到return,函数执行结束,后面的代码不会继续执行 return 'ok' print('step 2')result = welcome()prin

2020-07-31 17:00:13 360

原创 Python中的生成器的创建方法 (生成式改写 + yield关键字)

在Python中,一边循环一边计算的机制,称为生成器:Generator1. 生成器的应用性能限制时需要用到,比如在读取一个10G的文件时,如果一次性将10G的文件加载到内存处理的话(read方法),内存肯定会溢出;但使用生成器把读写交叉进行,如使用(readline和readlines)就可以在循环读取的同时不断处理,这样就可以节省大量的内存空间。如:使用列表生成式时,会将打印好的内容一次性全部输出,如果我们写成range(10000000)等待时间就会很长,此处也能验证什么时候需要生成器?这一点

2020-07-31 16:57:13 602

原创 Python中文件的多种读取方式------read() readline() readlines()

1. 实验前提lyqiu.txt文件中的内容如下所示,在之后的读取中都会与之进行对比。2. 常见的读取方式命令作用read()读取文件内容,返回文件的所有内容readline()一行一行的读取文件的内容readlines()读取文件内容,返回一个列表,列表里的元素分别为文件每行的内容read(5)指定读取5个字符2.1 read()最基本的读取方式,可以读出文件的所有内容f = open('lyqiu.txt', 'r')print(f.re

2020-07-30 18:00:51 1868

原创 Python------对文件的读写操作(r , w , a+)

1. 文件的打开在python中,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件。如果文件不存在就创建出来;如果存在就先清空,然后写入数据格式为: open(文件名 访问模式) 举例: f = open('test.txt', 'w')2. 文件的打开模式:读 / 写 / 读写1)读直接选择(r),如果不写对文件的操作方式,默认情况下是r2)写选择是清空表中内容重新(w)写还是在末尾进行追加(a)3)读写若是要清空原先内容(w+);若是不清空则判断是否从

2020-07-30 17:08:41 2000 1

原创 python练习------使用递归函数实现阶乘

递归函数:一个函数在内部调用自己本身(自己调用自己),考虑什么时候跳出阶乘练习:计算阶乘# 1!=1# 2!=2*1# 3!=3*2!# ....# n!=n*(n-1)!# def factorial(n):# if n <= 1:# return 1 函数遇到return结束执行# else:# return n * factorial(n-1)## result = factorial(8)# print(resu

2020-07-29 17:35:58 2787

原创 Python------匿名函数的定义与应用

1.匿名函数的定义匿名函数指一类无须定义标识符的函数或自程序,Python用lambda语法定义匿名函数,只需用表达式而无须申明。(省略了用def声明函数的标准步骤)函数语法lambda *args, **kwargs:(args,kwargs)python中有两类函数,一种是def定义,一种是lamba函数。以求两数之和为例普通函数匿名函数def function(x,y):return x+ylambda x,y:x+y2.匿名函数的应用求最大值

2020-07-29 17:15:22 1906

原创 函数的实参与形参(位置 / 默认 / 可变 / 关键字参数)

一. 函数的参数函数分为形参(形式参数)和实参(实际参数)形参又分为:位置参数(必选参数)、默认参数、可变参数、关键字参数实参调用函数时,小括号中的参数,用来传递给函数用的,称为"实参"形参定义函数时,小括号中的参数,是用来接收参数用的,称为"形参"。此外形参是可以任意修改的。必选参数必须要传递的参数默认参数如果没有传递参数,使用默认值;如果传递了参数,则使用传递的参数可变参数用户查undi的参数个数是可以变化的参数,一般写做 *args ,数据以元组(tup

2020-07-29 15:44:44 3647 3

原创 【图解】TypeError: xxx() takes 1 positional argument but 2 were given

问题在学习函数的参数时,出现了如下问题,报错提示为TypeError: enrool() takes 1 positional argument but 2 were given解决根据上图中的报错信息可以知道:enrool()只接收一个位置参数,此处相当于给了两个参数'lyqiu', 21,所以才出现了错误。可以使用以下两种方法进行修改。方法1考虑到关键字参数**kwargs是以字典的方式存储的,就需要两个信息:key值与value值。所以添加成age = 21即可方法2添加一个位置参数

2020-07-29 15:36:55 49882 1

原创 python练习-------itchat获取好友信息

前期准备点击Terminal打开命令行,输入pip3 install itchat -i https://pypi.douban.com/simple等待安装扫码登陆import itchat# 1. Login weixinitchat.auto_login()# 2. get friends informationfriends = itchat.get_friends()print(friends)# First friend information is yoursm

2020-07-28 10:06:52 228

原创 列表、元组、集合、字典之间的对比

一. 定义1.列表有关列表的定义: 1.list(列表):一个变量存储了多个信息 2.列表中可存储不同的数据类型 3.列表中可嵌套列表 4.列表中的每个元素都分配了一个位置,一个元素对应一个位置。索引值从0开始2.元组有关元组的定义: - 元组是一种序列,可使用 小括号() 去界定 - 元组中各元素之间用逗号隔开 - 元组本身是一个不可变的数据类型,没有增删改查。如果要修改,可以使用list函数把它转化成列表 - 元组内可存储任意类型3.集合有关集合的定义: -

2020-07-20 18:52:39 904 2

原创 python练习:用户登陆程序需求(三次机会)

要求输入用户名和密码;判断用户名和密码是否正确? (name=‘root’, passwd=‘westos’)为了防止暴力破解, 登陆仅有三次机会, 如果超过三次机会,报错提示;代码#!/usr/bin/python3try_Count = 0while try_Count < 3: print("*****************用户登陆系统***********************") name = input("Name: ") password

2020-07-19 10:51:09 3369

原创 认识python中的运算符(算术、赋值、关系、逻辑运算符)

算术运算符运算符作用**次方/除法//除法取整%取余+加法-减法*乘法注意:python3中,/操作符是做浮点除法,而//是做整除python2中,/就是整除,即和python3中的//操作符是一样的练习:赋值运算符运算符作用=等于+=加等-=减等/=除等*=乘等%=取余等练习:关系运算符运算符作用>大于&g

2020-07-18 18:28:24 609

原创 Python中实现:十进制转换为二进制、八进制、十六进制

python中的进制转换1)整数的范围取决于机器是32位还是64位,长整数的范围是取决于虚拟内存的大小2)整数一般以十进制表示,但是python也支持八进制(0开始)或十六进制(0x开始)来表示整数进制转换命令转二进制bin(10)转八进制oct(10)转十六进制hex(10)练习:十进制转换成二进制 bin(10)十进制转换成八进制 oct(10)十进制转换成十六进制 hex(10)...

2020-07-18 17:44:23 3133

原创 基于lamp框架搭建wordpress论坛

手动操作完成1.安装服务[root@workstation mnt]# dnf install httpd mariadb-server php php-mysqlnd -y[root@workstation mnt]# systemctl stop firewalld.service [root@workstation mnt]# systemctl disable firewalld.service [root@workstation mnt]# setenforce 0关闭火墙和se

2020-07-17 23:09:11 299

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除