Tomcat结合Nginx实现负载均衡与动静态分离

什么是动静态分离 我们都知道一个网站中包含各种文件,如css文件,或者是媒体文件如jpg,png等;不同的web服务器擅长的领域不同,比如Nginx就是响应静态资源请求的王者,而Tomcat是专门用来处理Java应用的web服务器,虽然Tomcat一样可以解析静态资源请求,但在效率上就没法和Nginx相比了; 因此,动静态分离就是利用Nginx的转发技术,当用户请求了servlet,jsp等文件时,将请求转发给Tomcat服务器,当用户请求的是其他的静态资源时,让Nginx代理服务器直接进行解析和响应,以此提升整体的响应效率。 动静态分离架构图 部署负载均衡与动静态分离 机器环境: Hostname 公网IP 内网IP 作用 lb-6 10.0.0.6 172.16.1.6 Nginx负载均衡 web-7 10.0.0.7 172.16.1.7 Tomcat web-9 10.0.0.9

Jenkins安装和简单远程发布

Jenkins简介 Jenkins是一款由Java开发的持续集成工具,它是敏捷开发框架中实现多次、快速发布的核心工具。在传统的软件开发流程下,当开发团队完成了一个版本的开发工作后,运维人员需要克隆远程代码仓库中的源代码,并编译部署到测试服务器进行测试,这个流程还是比较繁琐的;通过Jenkins,运维人员可以设定好通用的编译和部署模式/脚本,并实现自动化构建,以此达到敏捷开发框架中所要求的“多次发布”和“快速迭代”。 安装Jenkins 安装Java环境 Jenkins是通过Java开发的工具,因此必须安装JDK。 这里用得是华为云镜像站 wget https://repo.huaweicloud.com/java/jdk/8u181-b13/jdk-8u181-linux-x64.rpm yum localinstall jdk-8u181-linux-x64.rpm -y 安装和配置Jenkins 这里用的是清华源 wegt https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenki

为MySQL数据库集群部署MHA高可用

什么是MHA MHA(Master High Availability)是用于提高数据库集群可用性的方案,基于虚拟IP技术,可以实现在Master故障时,在30s内实现故障转移并确保数据一致性。可以理解为MHA就是作用于数据库集群的KeepAlived。 MHA工作原理 MHA的组成 MHA由MHA Manager和MHA Node组成,其中Manager相当于服务端,Node相当于客户端; Manager可以部署在Master或Slave机器上,也可以单独的部署在一台机器上;一般建议部署在一台单独的机器上,因为Manager是用于探测数据库实例是否在线和进行故障转移的核心程序,如果部署在Master上,一旦Master机器报销,整个数据库集群的不再可以;另外,如果部署在Slave机器上,那么这台机器就不能够被提升为Master。 Node需要部署在所有MySQL数据库实例的机器上。 MHA故障转移流程 * Manager会每隔一段时间(可以由用户在配置文件中指定)对主库进行一次探测; * 如果Manager检测到Master故障,会执行

MySQL备份

Binlog日志 Binlog是一个二进制格式的文件,用于记录用户对数据库更新的SQL语句信息。 例如,更改数据库库表和更改表内容的SQL语句都会记录到binlog里,但是对库表等内容的查询则不会记录到日志中。 Binlog记录的语句类型: * DML:insert update delete * DDL:create drop alter truncate * DCL:grant revoke 查看MySQL是否开启的Binlog功能 登录数据库后,查看binlog相关参数: mysql> show variables like '%log_bin%'; +---------------------------------+-------+ | Variable_name | Value | +---------------------------------+-------+ | log_bin | OFF | | log_bin_basename

使用ansible-role模板部署redis

JinJa2模板文件 JinJa2是一个特有的模板语言,主要作用就是能让普通的文件,能读取程序设置的变量,用模板语法,动态替换数据。 语法规则: * 配置文件必须是以.j2为后缀 * 必须放入在template目录下 * 使用的ansible模块是template模块 例如: shd_config文件是SSH服务端的配置文件,其中Port字段指明了sshd服务的链接端口号。将该字段的值替换为变量,并在vars/main.yml中配置,可以动态地修改这个变量的值。 实践:部署redis tasks/main.yml - name: 01 - install requirement apps yum: name: "{{ item }}" state: installed loop: "{{ requirements }}" - name: 02 - create data directory