记一次网站服务器搭建

公司的一个商城网站上线,巴拉巴拉

需求:Mysql数据库服务器,共享存储NFS,配置网站服务,部署监控服务zabbix,在kvw上虚拟机模拟上线环境

1.web服务器

  • 两台web服务器(网站服务 web_33,web_44,IP 192.168.4.33,192.168.4.44),并安装httpd  (yum -y install httpd)

2.mysql服务器准备

  • 两台数据库服务器(主从结构 mysql11,mysql22),个添加两块5G硬盘,做LV 使用逻辑卷(灵活管理,方便扩容)
  • fdisk -l /dev/vdb   验证添加的虚拟磁盘信息(vdb,vdc)
  • 使用fdisk给磁盘分区
    • fdisk /dev/vdb
    • n     //创建分区
    • Select (default p): p //创建主分区
    • 分区号 (1-4,默认 1):1 //指定编号  
    • 起始结束按照提示值
    • w   //保存退出
  • fdisk  -l /dev/vdb   查看验证
  • 创建LV
    • 修改设备ID并安装软件包
      • fdisk  /dev/vdb      //修改/dev/vdb 
      • 命令(输入 m 获取帮助):t  //修改类型
      • Hex 代码(输入 L 列出所有代码):8e
      • w  //保存退出
      • fdisk -l /dev/vdb    //查看验证
      • yum -y install lvm2 //安装软件
    • 创建PV
      • pvcreate /dev/vdb1  /dev/vdc1     //创建pv
      • pvdisplay //查看PV信息
    • 创建VG
      • vgcreate vg0 /dev/vdb1 /dev/vdc1 //创建vg 名称vg0
      • vgdisplay  //查看VG信息
    • 创建LV
      • lvcreate -L 9.99G -n lv0 vg0    //创建LV 名称为lv0 大小9.99G
      • mkfs.xfs  /dev/vg0/lv0   //格式化为 xfs 文件系统
      •  blkid  /dev/vg0/lv0   //查看文件系统类型
  • 配置数据库服务器
    • 安装mysql
    • 挂载LV设备
      • vim /etc/fstab     
        /dev/vg0/lv0    /var/lib/mysql xfs      defaults        0 0

         

      • mount -a     //重新加载
      • mount | grep lv0    //查看挂载信息
    • systemctl start mysqld   启动mysql服务
      • systemctl enable mysqld
      • ss -nutlp | grep mysqld    验证
    • 修改登录密码
      • grep password /var/log/mysqld.log    //查看初始密码
      • mysql -uroot -p'bB0*uCmu:.Kj'  //初始密码登录
      •  alter user root@"localhost" identified by "123aa..AA";   修改密码
      • mysql -uroot -p"123aa..AA"    新密码登录
  • 配置数据库主从同步
    • 配置主服务器
      • vim /etc/my.cnf   修改主配置文件
        server_id=11
        log-bin=master11

         

      • systemctl restart mysqld  重启服务
      • grant replication slave on *.* to repluser@"%" identified by "123aa..AA";   用户授权
    • 配置从服务器
      • vim /etc/my.cnf
        server_id=22

         

      • systemctl restart mysqld
      • mysql -uroot -p123qqq...A   进入数据库
      • change master to master_host="192.168.4.11",master_user="repluser",\
            -> master_password="123aa..AA",master_log_file="master11.000001",\
            -> master_log_pos=441;     指定主服务器
      • start slave ;   启动
      • show slave status   查看从服务器信息

3.配置读写分离服务(192.168.4.77)

  • 安装软件
    • rpm -ivh maxscale-2.1.2-1.rhel.7.x86_64.rpm //安装软件
  • 修改配置文件
    • vim   /etc/maxscale.cnf
  • [maxscale]  //服务线程数量
    threads=auto
    
    [server1] //第1台数据库服务器
    type=server
    address=192.168.4.11
    port=3306
    protocol=MySQLBackend
    
    [server2]  //第2台数据库服务器
    type=server
    address=192.168.4.22
    port=3306
    protocol=MySQLBackend
    
    [MySQL Monitor] //指定监控数据库服务器server1 和 server2
    type=monitor
    module=mysqlmon
    servers=server1, server2
    user=maxscalemon   //监控用户
    passwd=123qqq...A  //密码
    monitor_interval=10000
    
    [Read-Write Service]  //定义读写分离服务
    type=service
    router=readwritesplit
    servers=server1, server2
    user=maxscalerouter  //路由用户
    passwd=123qqq...A  //密码
    max_slave_connections=100%
    
    [MaxAdmin Service]  //定义管理服务
    type=service
    router=cli
    
    [Read-Write Listener]  //定义读写分离服务端口
    type=listener
    service=Read-Write Service
    protocol=MySQLClient
    port=4006  //端口号
    
    [MaxAdmin Listener]  //定义管理服务端口
    type=listener
    service=MaxAdmin Service
    protocol=maxscaled
    socket=default
    port=4016 //端口号

     

  • 配置数据库服务器
    • 用户授权
      • grant replication slave,replication client on *.*\
            -> to maxscalemon@"%" identified by "123aa..AA";
      • grant select on mysql.* to maxscalerouter@"%" identified by "123aa..AA";
    • 从服务器验证用户
      • mysql -uroot -p"123aa..AA" -e 'select user,host from mysql.user where user like "maxscale%"'
  • 启动maxsacle服务
    • maxscale -f /etc/maxscale.cnf
    • ss -nutlp | grep maxscale   查看两个端口号是否正常监测
  • 访问管理服务,查看监控信息
    • maxadmin -uadmin -pmariadb -P4016
    • list servers

准备NFS服务存储磁盘

  • NFS服务器添加一块10G磁盘
  • 磁盘分区
  • 挂载磁盘
    • 格式化
      • mkfs.xfs /dev/vdb1
    • 配置开机挂载
      • vim /etc/fstab
        /dev/vdb1       /sitedir        xfs     defaults        0 0

         

      • mkdir /sitedir //创建挂载目录
      • chmod +w /sitedir/   //赋予写权限
      • mount –a //加载文件中所有未加载的设备
      • mount | grep "/sitedir" //查看加载信息
  • 部署NFS服务
    • 安装软件
      • yum -y install nfs-utils rpcbind
    • 修改配置文件
      • vim /etc/exports
        /sitedir *(rw)

         

      • exportfs –r //加载配置
  • 启动服务
    • systemctl start rpcbind
    • systemctl start nfs
    • systemctl enable nfs
    • systemctl enable rpcbind
  • 查看共享信息
    • showmount -e localhost

部署网站服务

  • 安装软件
    • yum -y install httpd
    • yum -y install nfs-utils  
  • 查看NFS
    • showmount -e 192.168.4.30
  • 将html挂载到NFS
    • vim  /etc/fstab   ==>  192.168.4.30:/sitedir   /var/www/html  nfs  defaults  0  0
    • mount -a   重新加载挂载配置
    • mount | grep "/var/www/html"    验证挂载信息
    • systemctl  enable remote-fs.target  开启远程挂载服务

测试环境

  • 测试NFS服务
    • [root@NFS30 ~]# echo "this is web test page!" > /sitedir/test.html    NFS服务器创建html文件
    • [root@room9pc17 ~]# curl http://192.168.4.33/test.html //访问网站33主机
    • [root@room9pc17 ~]# curl http://192.168.4.44/test.html //访问网站44主机
  • 测试Mysql服务
    • 登录主服务器
    • grant select,insert,update,delete on gamedb.* to xiaoming@"%" identified by "123aa..AA"; //用户授权
    • create table gamedb.user (name char(15));   //建表
    • select * from gamedb.user;  查询验证
    • 登录从服务器
    • show grants for xiaoming@"%" ;   查看授权用户
    •  desc gamedb.user; //查看库表
    • insert into gamedb.user values("SlaveTest"); //用来验证数据读写分离
  • 测试读写分离服务
    • 进入网站服务器
    • yum -y install mariadb //安装提供连接命令软件
    • mysql -h192.168.4.77 -P4006 -uxiaoming -p123aa..AA //连接读写分离服务

配置zabbix监控服务

  • 部署运行环境LNMP
    • yum -y install gcc pcre-devel  openssl-devel
    • tar -xf nginx-1.12.2.tar.gz
    • cd nginx-1.12.2
    • ./configure --with-http_ssl_module
    • make && make install
    • yum -y install php php-mysql mariadb mariadb-devel mariadb-server
    • yum -y  install  php-fpm-5.4.16-42.el7.x86_64.rpm
  • 修改Nginx配置文件
    •  vim /usr/local/nginx/conf/nginx.conf
      http{
      … …
          fastcgi_buffers 8 16k;                      //缓存php生成的页面内容,8个16k
          fastcgi_buffer_size 32k;                      //缓存php生产的头部信息
          fastcgi_connect_timeout 300;                 //连接PHP的超时时间
          fastcgi_send_timeout 300;                     //发送请求的超时时间
          fastcgi_read_timeout 300;                        //读取请求的超时时间
      location ~ \.php$ {
                      root           html;
                      fastcgi_pass   127.0.0.1:9000;
                      fastcgi_index  index.php;
                      include        fastcgi.conf;
              }

       

  • 启动Nginx、PHP-FPM、MariaDB服务,关闭SELinux与防火墙。
    • systemctl start  mariadb
    • systemctl start  php-fpm
    •  ln -s /usr/local/nginx/sbin/nginx /sbin/nginx
    •  nginx
    • firewall-cmd --set-default-zone=trusted
    •  setenforce 0
  • 测试LNMP环境 
    • 服务器创建PHP测试页面,浏览器访问页面测试网页连通性。

安装Zabbix软件

  • 源码安装
    •  yum -y install  net-snmp-devel  curl-devel 
    • lyum -y install  ibevent-devel-2.0.21-4.el7.x86_64.rpm
    • tar -xf zabbix-3.4.4.tar.gz
    • cd zabbix-3.4.4
    •  ./configure  --enable-server  --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl
    • make && make install

初始化配置

  • 创建zabbix数据库
    • mysql
    • mysql> create database zabbix character set utf8;
    • mysql> grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值