热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

nginx高可用MySQL_keepalived+msyql+nginx高可用数据库主从同步nginx负载均衡+vsftpd发布...

硬件环境:五台dell服务器(DELLR540服务器做raid按F2)操作系统:centos7.3需求:1、两台服务器做MySQL主从同步

硬件环境:五台dell服务器(DELL R540服务器做raid按F2)

操作系统:centos7.3

需求:

1、两台服务器做MySQL主从同步以及靠可用

2、五台服务器安装nginx并作web发布,其中两台做负载均衡

一、安装服务前提,配置分区

因为硬盘都是超过2T的,所以不能用常规的fdsik命令来分区。

fdsik -l #查看本地所有的磁盘

parted  /dev/sda #找到未分区的磁盘,准备分区

mklable pgt #将磁盘设置为gpt个格式的磁盘

mkpart  primary 0 4T  #分一个4T的主分区

quit   #退出

二、配置五台服务器本地共享yum源

在集群中找一台空闲的服务器做web发布服务器,丢上去一个镜像,先挂载到本地。

mount -o loop -t iso9660 /root/centos7.3.iso  /mnt

加入到/etc/fstab   #开机自启

/root/centos7.3.iso /mnt  iso9660 default,loop  0   0

安装web发布服务apache

yum install httpd -y

更改apache发布的默认目录

vim  //etc/httpd/conf/httpd.conf

找到 DocumentRoot “/var/www/html”

将默认目录改为/mnt

注销欢迎网页

vim /etc/httpd/conf.d/welcome.conf

注销里面的页面内容

启动apache

systemctl  start httpd

访问本地地址(192.168.1.10)  会有镜像里面的所有文件

其他主机yum配置

cd /etc/yum.repo.d/

rm -rf ./*(斜杠前面有个点)

vim defaults.repo

[name]

baseurl=http://192.168.1.10 #共享yum主机的地址

enabled=1

gpgcheck=0

保存退出

所有主机都这样配置即可,然后就可以直接用yum源,不用再上传iso文件

三、安装MySQL做主从同步

MySQL版本5.7

MySQL自行安装阔以百度哈,这里不写安装过程

安装完MySQL之后,开始做主从同步

master:192.168.1.1

slave:192.168.1.2

更改主数据库配置文件,启用二进制文件

vim /etc/my.cnf

[mysqld]

log-bin=mysql-bin

server-id=1  #master设置为1   slave设置为2

更改从数据库配置文件

vim /etc/my.cnf

[mysqld]

log-bin=mysql-bin

server-id=2

先分别给两台服务器刷权限

mysql> grant all privileges on *.* to root@”%” identified by “123456” with grant option;

查看slave的master状态

mysql > show master \G

e69efca1f869c92a7f285f24b499dfcf.png

记录下master和slave的file文件名称和pos的id

配置主从同步:(在从库上配置)

在slave上配置

mysql> change master to master_host=’192.168.1.10′,master_user=’root’,master_password=’123456′,master_log_file=’binlog.000006′,master_log_pos=76070;

启动主从同步

mysql > start slave;

查看SQL线程和IO线程是否正常开启

mysql > show slave status \G

46405e4627588934e4f59d5051e20f90.png

这就代表成功了

可以在主库中新建表、或者写数据来进行测试

四、安装keepalived做MySQL的高可用。

下载好keepalived的软件包

在master、slave两台数据库中分别安装keepalived。

解压keepalived安装包

tar-zxvf keepalived-1.2.8.tar.gz

切换到keepalived目录下编译安装

cdkeepalived-1.2.8

./configure –prefix=/usr/local/keepalived

–with-kernel-dir=/usr/src/kernels/2.6.18-308.el5xen-i686/

make&& make install

拷贝文件到相关目录

cp/usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/

cp/usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

cp/usr/local/keepalived/sbin/keepalived /usr/sbin/

mkdir-p /etc/keepalived

cp/usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

配置keepalived

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

router_id mysql

}

vrrp_instance VI_1 {

state BACKUP

interface eth0

virtual_router_id 60

priority 100             #定义主从关系,数值越大优先级越高

advert_int 1

authentication {

auth_type PASS

auth_pass 123456

}

virtual_ipaddress {

192.168.103.106/24    #定义一个虚拟IP,当主服务器MySQL挂掉,这个ip会切换到从服务器上

}

}

virtual_server 192.168.103.106 3306 {

delay_loop 6

lb_algo wrr

lb_kind DR

persistence_timeout 5

protocol TCP

real_server 192.168.103.100 3306 {                 #本地监听服务端口

weight 3

notify_down /usr/local/keepalived/master.sh

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

connect_port 3306

}

}

}配置从服务器,从服务器上只有   priority 和  real_server与主服务器不同,其他一样,real_server为本地IP,prioity数值要比主服务器小,取其一半。

启动服务

systemctl start keepalived

测试:

将主服务器上的MySQL停掉看虚拟IP是否会转移动slave上

查看命令

ip addr show dev em1   #em1为网卡名称

五、ftp服务搭建

yum install vsftpd -y

useradd  ftpuser #创建ftp用户

passwd ftpuser   #设置用户密码

chown ftpuser /var/www/html   #指定该目录所有者

chgrp ftpuser /var/www/html    #指定该目录所属组

usermod -d /var/www/html ftpuser  #指定该用户登入时的目录

给ftp远程登陆时候的权限

sestatus -b | grep ftp

setsebool -P ftp_home_dir on (依次类推,把红色部分的权限都开)

ecd31bed389f6f819236063c8e28e9de.png

启动服务

systemctl start vsftpd

在电脑上测试

5f0e5339124d27b1126762fbae6371a6.png

六、nginx负载均衡加web发布

利用nginx来做负载均衡以及一个web发布服务,主要发布的是ftp上的文件

安装prex

tar -zxvf pcre-8.35.tar.gz

cd pcre-8.35

./configure(此处若报错,检查是否安装gcc)

make

make install

安装nginx

tar -zxvf nginx-1.2.5.tar.gz

cd nginx-1.2.5

./configure

make

make install

启动nginx

cd /usr/local/nginx/sbin

./nginx

关闭nginx

pkill nginx

配置nginx配置文件,将其中一台做负载均衡并且可以访问自己本地文件

配置如下:

upstream nginx      #配置多个负载的主机IP

{

server 192.168.103.10:80 weight=4 max_fails=2 fail_timeout=30s;

server 192.168.103.11:80 weight=4 max_fails=2 fail_timeout=30s;

}

server {

listen       80;                     #监听本地80端口

server_name  localhost;

#charset koi8-r;

#access_log  logs/host.access.log  main;

location / {

proxy_pass http://nginx;   #转发的地址

}

}

server {

listen       8090;                        #基于端口的虚拟主机,访问8090所访问目录

server_name  localhost;

#charset koi8-r;

#access_log  logs/host.access.log  main;

location / {

root /var/www/html;                #指定nginx默认访问目录

index  index.html index.htm;

autoindex on;

autoindex_exact_size off;

autoindex_localtime on;

}

再启动nginx

END



推荐阅读
  • 负载均衡_Nginx反向代理动静分离负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第二部分
    nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • Nginx Buffer 机制引发的下载故障
    Nginx ... [详细]
  • 构建LNMP架构平台
    LNMP架构的组成:Linux、Nginx、MySQL、PHP关于NginxNginx与apache的作用一样,都是为了搭建网站服务器,由俄罗斯人lgorsysoev开发,其特点是 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文介绍了禅道作为一款国产开源免费的测试管理工具的特点和功能,并提供了禅道的搭建和调试方法。禅道是一款B/S结构的项目管理工具,可以实现组织管理、后台管理、产品管理、项目管理和测试管理等功能。同时,本文还介绍了其他软件测试相关工具,如功能自动化工具和性能自动化工具,以及白盒测试工具的使用。通过本文的阅读,读者可以了解禅道的基本使用方法和优势,从而更好地进行测试管理工作。 ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
  • Struts2+Sring+Hibernate简单配置
    2019独角兽企业重金招聘Python工程师标准Struts2SpringHibernate搭建全解!Struts2SpringHibernate是J2EE的最 ... [详细]
author-avatar
fdasfwgafaweg
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有