基于LAMP架构实现web网站高可用集群

基于LAMP架构实现web网站高可用集群

安装7台主机,配置主机名网络,关闭防火墙和selinux

两台nginx主机,配置网络源安装Nginx 和 keeplived(热备)

两台apache主机,配置本地源安装,httpd和php php-mysql

两台mysql主机,配置raid5,创建目录并挂载到/var/lib/mysql 再安装mariadb*

一台nfs主机,配置raid5,创建并挂载到/luntan目录中,安装nfs-utils*,配置软件

本地yum源配置:

挂载

mount /dev/sr0 /mnt

df -hT (查看挂载)

配置yum源

2.1.备份原有yum源仓库配置

cp -rp /etc/yum.repos.d/ /

2.2.切换目录到/etc/yum.repos.d/

cd /etc/yum.repos.d/

2.3.清空原有yum源配置

rm -rf *

2.4.添加新的yum配置文件

#vi centos.repo

[a]

name=CentOS

enabled=1

gpgcheck=0

baseurl=file:///mnt

2.5生成新yum缓存

yum repolist

搭建LAMP架构实现web网站高可用集群

一、搭建NFS服务。目的是:让两个apache使用同一套前端页面

NFS:搭建NFS服务,创建共享目录,上传前端页面,关闭防火墙,关闭selinux。重启服务

(创建raid5: mdadm -C /dev/md5 -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}

格式化: mkfs -t 文件系统类型 分区绝对路径

Mkfs -t ext4 /dev/md5

创建目录mkdir /var/lib/mysql

临时挂载: mount 分区绝对路径 挂载点

Mount /dev/md5 /var/lib/mysql

开机自动挂载:vi /etc/fstab 切换到最后一行

设备绝对路径 挂载点 文件系统类型 defaults 0 0)

关闭防墙和selinux

Setenforce 0

Systemctl stop firawalld

2.安装nfs*/httpd*

3. 启动rpcbind/nfs/httpd

systemcatl start rpcbind /nfs /httpd

4.创建目录

mkdir /luntan

5.修改配置文件

vi /etc/export

/luntan *(rw,no_root_squash)

上传/下载论坛包

cd /luntan

wget http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_UTF8.zip

7.解压

unzip Discuz_X3.2_SC_UTF8.zip

8.复制upload/* .文件

cp -rp upload/* .

9.修改权限

chmod -R 757 data uc_server coonfig uc_client

二、搭建Apache服务。目的是:提供web界面后台解析。

Apache:两台主机安装apache+php+php-mysql,挂载NFS共享目录到/var/www/html。启动服务,关闭防火墙和selinux

1.关闭防火墙和selinux

2.安装nfs*/httpd*/php*

3.systemctl start rpcbind /nfs /httpd

4.挂载nfs

mount -t nfs nfs的IP:/luntan /var/www/html

查看挂载

df -h

浏览器访问两台apache的ip,发现问题及时排错

三、添加负载均衡服务

NGINX:配置网络源安装,修改配置文件/etc/nginx/nginx.conf /etc/nginx/conf.d/default.conf

重启服务。

基于NGINX完成的负载均衡

1.安装nginx(注意查看挂载和本地源)

1.1阿里源:

wget http://mirrors.aliyun.com/repo/Centos-7.repo

1.2网络源:

[nginx-stable]

name=nginx stable repo

baseurl=http://nginx.org/packages/centos/$releasever/$basearch/

gpgcheck=0

enabled=1

gpgkey=https://nginx.org/keys/nginx_signing.key

1.3安装nginx

yum install -y nginx

2.启动

systemctl start nginx

注:nginx使用tcp80端口,请注意与其他web服务冲突、

3.配置反向代理

#vi /etc/nginx/nginx.conf

http {

...

upstream backend {

server 192.168.100.102:80; #apache1主机IP

server 192.168.100.103:80; #apache2主机IP

}

4.配置Nginx开启反向代理访问

#vi /etc/nginx/conf.d/default.conf

server {

...

location / {

...

...

proxy_pass http://backend;

proxy_redirect default;

#设置代理

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

}

使用浏览器访问http://nginx主机IP 确认是否自动跳转到apache主机上。关闭apache1,刷新浏览器页面,看是否切换到apache2主机主页

5.在两个NGINX主机上安装keepalived

yum install -y keepalived

6.修改配置/etc/keepalived/keepalived.conf

清空内容后,添加以下内容

global_defs {

router_id 1

}

vrrp_instance VI_1 {

state MASTER

interface ens33

virtual_router_id 1

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 123456

}

virtual_ipaddress {

192.168.100.200

}

}

辅调度器上要稍作修改:

将 router_id 1 改为 router_id 2

将 state MASTER 改为 state BACKUP

将 priority 100 改为 priority 99

其他一致即可

浏览器访问虚拟ip,发现问题及时排错

四、搭建数据库服务。目的是:存放论坛数据。

Mariadb: 主机安装服务,启动服务,配置密码,登录授权,关闭防火墙和selinux

mysql 主从复制

环境准备

相关配置

1.关闭防火墙和selinux

systemctl stop firewalld

setenforce 0

2. 主库和从库Mysql安装与配置(注意查看挂载和本地源)

yum -y install mariadb*

3.开启Mysql服务,并查看服务状态

systemctl start mariadb

systemctl status mariadb

4.修改数据库ROOT密码

设置密码

mysql_secure_installation

#在提示符下输入密码123456

注:需要先启动软件才能设置密码,否则会提示套接字未运行

5.主从复制配置过程

5.1.主库配置

#vi /etc/my.cnf

[mysqld]

....

server-id=1

log-bin=mysql-bin

5.2修改完成之后需要重启Mysql服务

systemctl restart mariadb

5.3授权远程用户

Mysql -uroot -p123456

mysql> CREATE USER 'shz'@'%' IDENTIFIED BY '123456';

mysql> grant all privileges on *.* to 'shz'@'%' identified by '123456';

mysql> flush privileges;

授权root用户

mysql> grant all privileges on *.* to 'root'@'%' identified by '123456';

mysql> flush privileges;

#验证成功,切换到从机

mysql -h主机IP -ushz -p123456

登录成功证明主库用户授权成功,网络互通,防火墙selinux关闭生效

quit

5.4从库配置

# vi /etc/my.cnf

[mysqld]

...

server-id=2

relay-log=mysql-relay-bin

5.5重启服务

systemctl restart mariadb

5.6获取主库信息(进入主库)

mysql -uroot -p123456

MASTER> show master status; 查询Log_file log_pos

5.7配置从库连接到主库,MASTER_LOG_FILE与MASTER_LOG_POS的值由主库信息获得

mysql -uroot -p123456

mysql> CHANGE MASTER TO MASTER_HOST='192.168.122.148', MASTER_USER='shz', MASTER_PASSWORD='123456', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000004', MASTER_LOG_POS=670, MASTER_CONNECT_RETRY=10;

5.7.1.开启复制

start slave;

5.7.2.查看slave状态

show slave status \G;

5.7.3主要查看内容

Slave_IO_Running和Slave_SQL_Running的状态都要为Yes。

#主从复制测试

1.在主库进行数据修改

Master> create table master1.ceshi(id int);

2.查看从库数据是否与主库同步

SLAVE> use master1;

SLAVE> show tables;

主机和从机安装keepalived(注意查看挂载和本地源)

yum install -y keepalived

启动keepalived

systemctl start keepalived

配置keepalived

修改配置

#vi /etc/keepalived/keepalived.conf

清空内容后,添加以下内容(注意和nginx的keepalived区别)

global_defs {

router_id 1

}

vrrp_instance VI_1 {

state MASTER

interface ens33

virtual_router_id 1

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 123456

}

virtual_ipaddress {

192.168.100.200

}

}

辅调度器上要稍作修改:

将 router_id 1 改为 router_id 2

将 state MASTER 改为 state BACKUP

将 priority 100 改为 priority 99

其他一致即可

五、修改windows的hosts文件,添加一个新的域名

修改文件

1.依次找到

C:\Windows\System32\drivers\etc\hosts

2.用记事本打开后在最后一行添加 IP 域名(添加nginx的虚拟ip)

你可能感兴趣的:(linux,服务器,数据库,mysql)