Linux云计算 |【第四阶段】PROJECT2-DAY2

综合项目内容:

升级网站运行平台、部署Redis内存存储服务集群、数据迁移、部署PXCMySQL实现强同步、部署LB和HA集群

一、项目拓扑结构

PROJECT2-DAY1回顾:

服务架构缺点分析:

① 数据存储结构存在单点故障(需增调度器)

② 网络服务每次都是从源站提取数据

③ 将tomcat网站服务升级网站运行平台LNMP;

项目需求:

① 升级网站运行平台(LNMP)

② 部署内存存储服务器(redis集群)

③ 部署PXC集群;

④ 解决数据库服务负载问题;

⑤ 解决调度器单点故障问题;

PROJECT2-DAY2:

实验延续PROJECT2-DAY1,服务器启动并检查服务正常,确保关闭所有主机的防火墙和SELinux;

案例1:升级网站运行平台

具体配置如下:

① 清除当前配置(tomcat、tomcat的共享存储)

② 部署LNMP(源码安装Nginx、php-fpm、php及php-mysql)

③ 测试配置(编写php脚本)

补充:因数据不存储在Nginx服务器数据库(可选安装mariadb-server及mariadb、mariadb-devel)


步骤1:清除当前WEB服务器配置

web33操作

① 停止Tomcat网站服务

[root@web33 ~]# /usr/local/tomcat/bin/shutdown.sh   //停止tomcat服务
[root@web33 ~]# vim /etc/rc.local   //注释服务开机自启
# usr/local/tomcat/bin/startup.sh

② 卸载NFS共享存储

[root@web33 ~]# df -h | grep /sitedir   //查看挂载点
192.168.4.30:/sitedir    3.0G   32M  3.0G    2% /usr/local/tomcat/webapps/ROOT
[root@web33 ~]# umount /usr/local/tomcat/webapps/ROOT/   //卸载tomcat网站的挂载点
[root@web33 ~]# vim /etc/fstab    //注释共享挂载
# 192.168.4.30:/sitedir /usr/local/tomcat/webapps/ROOT nfs defaults 0 0

步骤2:部署LNMP平台架构

web33操作

① 安装Nginx和所需环境及依赖包

[root@web33 ~]# yum -y install gcc pcre-devel zlib-devel

# 源码安装Nginx(参考:lnmp_soft/nginx-1.12.2.tar.gz )

[root@web33 lnmp_soft]# tar -xf nginx-1.12.2.tar.gz
[root@web33 lnmp_soft]# cd nginx-1.12.2/
[root@web33 nginx-1.12.2]# ./configure    //配置Makefile
[root@web33 nginx-1.12.2]# make && make install   //编译安装
[root@web33 nginx-1.12.2]# ls /usr/local/nginx/
conf  html  logs  sbin

# 安装PHP及连接MySQL依赖包

[root@web33 nginx-1.12.2]# yum -y install php php-mysql php-fpm

② 挂载NFS共享存储

[root@web33 ~]# showmount -e 192.168.4.30      //查看NFS服务器的共享
Export list for 192.168.4.30:
/sitedir *
[root@web33 ~]# vim /etc/fstab     //Nginx挂载NFS共享存储
192.168.4.30:/sitedir /usr/local/nginx/html nfs defaults 0 0
[root@web33 ~]# mount -a
[root@web33 ~]# mount | grep "/usr/local/nginx/html"
192.168.4.30:/sitedir on /usr/local/nginx/html type nfs4 (rw,relatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.4.33,local_lock=none,addr=192.168.4.30)

③ 启动Nginx服务

[root@web33 ~]# vim +65 /usr/local/nginx/conf/nginx.conf     //修改配置文件,开启动态解析功能;
…
        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
        #   fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;
        }
…
[root@web33 ~]# /usr/local/nginx/sbin/nginx    //启动服务
[root@web33 ~]# echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local   //开机自启
[root@web33 ~]# ss -nlptu | grep :80
tcp    LISTEN     0      128       *:80                    *:*                   users:(("nginx",pid=14279,fd=6),("nginx",pid=14278,fd=6))

④ 启动PHP-FPM服务

[root@web33 ~]# systemctl start php-fpm.service
[root@web33 ~]# systemctl enable php-fpm.service
[root@web33 ~]# ss -nlptu | grep :9000
tcp    LISTEN     0      128    127.0.0.1:9000                  *:*                   users:(("php-fpm",pid=14312,fd=0),("php-fpm",pid=14311,fd=0),("php-fpm",pid=14310,fd=0),("php-fpm",pid=14309,fd=0),("php-fpm",pid=14308,fd=0),("php-fpm",pid=14306,fd=6))

步骤3:测试配置

nfs30操作

① 编写连接Mysql11数据库服务器PHP脚本

[root@nfs30 ~]# vim /sitedir/linkdb2.php
<?php
$conn=mysql_connect("192.168.4.11","army","123qqq...A");
mysql_select_db("gamedb");
$sql = 'insert into user (name) values ("Jackie")';   //存入数据“Jackie”
mysql_query($sql);
mysql_close();
echo "save data ok";
?>

# WEB服务器上查看挂载的网页目录是否增加php文件

[root@web33 ~]# ls /usr/local/nginx/html/
linkdb2.php  linkdb.jsp  test.html

② 使用浏览器访问脚本

③ 在mysql11主数据库服务器查看数据

[root@mysql11 ~]# mysql -uarmy -p123qqq...A
mysql> select * from gamedb.user;
+--------+
| name   |
+--------+
| jack   |
| AnJ    |
| lucy   |
| Jackie |
+--------+
5 rows in set (0.00 sec)

案例2:部署Redis内存存储服务

具体操作如下:

① 部署6台redis服务器

② 创建redis集群(1个管理主机 --> 3个主从节点的redis服务器)

③ 配置Nginx网站服务器支持php和redis;

④ 测试配置

PROJECT2-DAY2拓扑:

服务器IP及角色规划:

主机名

IP地址:端口

角色

redisA

192.168.4.51:6379

Redis服务器

redisB

192.168.4.52:6379

Redis服务器

redisC

192.168.4.53:6379

Redis服务器

redisD

192.168.4.54:6379

Redis服务器

redisE

192.168.4.55:6379

Redis服务器

redisF

192.168.4.56:6379

Redis服务器

mgm

192.168.4.57

管理集群主机


步骤1:部署Redis服务器

redisA、redisB、redisC、redisD、redisE、redisF操作

① 搭建redis服务器(命令行方式,以redisA为例)

[root@redisA ~]# rpm -q gcc || yum -y install gcc     //检查编译环境
[root@redisA ~]# tar -zxf redis-4.0.8.tar.gz    //解压软件包
[root@redisA ~]# cd redis-4.0.8/
[root@redisA redis-4.0.8]# make install    //安装(默认已有Makefile)
[root@redisA redis-4.0.8]# ./utils/install_server.sh    //初始化配置

[root@redisA redis-4.0.8]# /etc/init.d/redis_6379 stop    //停止服务
Stopping ...
Redis stopped

[root@redisA redis-4.0.8]# vim /etc/redis/6379.conf     //修改配置文件,启用集群配置
70 # bind 127.0.0.1
89 protected-mode no    //关闭保护机制
815 cluster-enabled yes
823 cluster-config-file nodes-6379.conf
829 cluster-node-timeout 5000

[root@redisA redis-4.0.8]# /etc/init.d/redis_6379 start    //启动服务
Starting Redis server...
[root@redisA redis-4.0.8]# ss -nlptu | grep redis-server    //查看服务端口
tcp    LISTEN     0      128       *:6379                  *:*                   users:(("redis-server",pid=14455,fd=7))
tcp    LISTEN     0      128       *:16379                 *:*                   users:(("redis-server",pid=14455,fd=10))
tcp    LISTEN     0      128      :::6379                 :::*                   users:(("redis-server",pid=14455,fd=6))
tcp    LISTEN     0      128      :::16379                :::*                   users:(("redis-server",pid=14455,fd=9))

扩展:自定义脚本,部署redis服务器并开启集群功能(注意:需提前准备redis软件包)

[root@redisA ~]# cat setup_redis.sh
#!/bin/bash
# 描述:该脚本用来部署Redis服务器,并启用集群配置
 
# 检查编译环境
rpm -q gcc || yum -y install gcc
 
# 解压软件包(注释:提前准备软件包)
[ -e "redis-4.0.8"] && echo "目录存在" || tar -zxvf redis-4.0.8.tar.gz
 
# 编译安装
cd redis-4.0.8/
make install
 
# 初始化配置(注意:服务启动需要些许时间)
cd utils/
echo | source install_server.sh
sleep 5     //休眠5秒
 
# 停止redis服务
/etc/init.d/redis_6379 stop
 
# 启用集群配置
sed -i '89s/yes/no/' /etc/redis/6379.conf   # 关闭保护 protected-mode no
sed -i '70s/^/# /' /etc/redis/6379.conf   # 注释 bind 127.0.0.1
sed -i '815s/# //' /etc/redis/6379.conf   # cluster-enabled yes
sed -i '823s/# //' /etc/redis/6379.conf   # cluster-config-file nodes-6379.conf
sed -i '829s/# //' /etc/redis/6379.conf   # cluster-node-timeout 15000
sed -i '829s/15000/5000/' /etc/redis/6379.conf  # cluster-node-timeout 5000
 
# 清除数据目录
rm -rf /var/lib/redis/6379/*
 
# 启动redis服务
service redis_6379 start

② 使用脚本为其它节点主机部署Redis服务及开启集群功能(脚本方式,以redisB为例)

[root@redisB ~]# chmod +x setup_redis.sh
[root@redisB ~]# ./setup_redis.sh
[root@redisB ~]# ss -nlp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小安运维日记

Hey~ 感谢您的充电支持!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值