Shopex bbc的集群部署

  • 服务器说明
  • MySQL主从配置
  • 安装Redis
  • 安装Memcache
  • 静态资源服务器配置
  • web机代码同步,采取 rsync+inotify方式
  • 负载均衡
  • FAQ

 

服务器说明(3web机情况,其他类似)

  • 本文档仅供参考,达到集群部署目的即可,不同运维都有自己的方案,生产环境的要求要复杂于以下文档,具体环境具体对待
  • 软件部署安装具体请参考 linux单机部署,集群部署可能不需按照单机部署那样所有软件都需要安装,根据服务器实际需要安装
  • 集群部署机器分配,由于机器有限,部分服务器同时用做多个服务
  • 实际情况下请根据自己的实际ip进行调整,包括各种配置中的都要根据您真实情况调整
    机器 功能 安装软件 说明
    192.168.10.228 负载均衡机 haproxy 负载均衡服务器
    192.168.10.229 web1 nginx+php+rsync+inotify 主web机,并且推送代码到从web机
    192.168.10.230 web2 nginx+php+rsync 从web机
    192.168.10.231 web3 nginx+php+rsync 从web机
    192.168.10.232 memcached memcached 缓存服务器
    192.168.10.232 redis redis redis服务器
    192.168.10.232 NFS nginx+nfs-utils 资源,图片服务器
    192.168.10.233 mysql mysql 主数据库
    192.168.10.234 mysql从 mysql 从数据库
  • 关于一些配置文件以及相关目录说明
    名称 本次版本(2016.07) 相关说明
    nginx openresty/1.9.7.4 配置文件 /usr/local/nginx/conf/nginx.conf
    vhost配置文件 /usr/local/nginx/conf/vhosts/*.conf
    php 5.6.19 配置文件 /usr/local/php56/etc/php.ini
    php 扩展配置文件目录 /usr/local/php56/etc/php.d/
    zend 配置文件 /usr/local/php56/etc/php.d/Zend.ini
    memcached 配置文件 /usr/local/php56/etc/php.d/memcached.ini
    mysql 5.6.22 basedir /usr/local/mysql
    datadir /data/mysql/3306
    配置文件 /usr/local/mysql/my.cnf
    redis 3.0.3 配置文件 /etc/redis.conf
    memcached 1.4.4 配置文件 /etc/sysconfig/memcached
    rsync+inotify 1.4.4 配置文件 /etc/rsyncd.conf
    密码文件 /etc/rsyncd.passwd
    配合inotify监控脚本位置 /root/rsync.sh
    代码目录 - /data/httpd

MySQL主从安装配置

MySQL主192.168.10.233, MySQL从192.168.10.234,

主服务器和从服务器都安装MySQL

初始化yum源,将shopex-lnmp源加入到系统中,如果已经参照单机部署初始化过yum源了则省略此步骤

安装mysql

启动MySQL

登录MySQL并且修改密码并且删除空用户

配置

修改主服务器master192.168.10.233 vim /usr/local/mysql/my.cnf

修改从服务器slave192.168.10.234 vim /usr/local/mysql/my.cnf

重启两台服务器/etc/init.d/mysql restart

登录master服务器,给Slave服务器授权

查询主数据库状态

配置Slave 服务器

主从服务器测试

主web配置Mysql主从

MySQL主服务器给web服务器授权访问

web服务器配置

修改数据库配置文件vim /data/httpd/config/production/database.php

安装Redis

初始化yum源,将shopex-lnmp源加入到系统中,如果已经参照单机部署初始化过yum源了则省略此步骤

安装

配置

redis开启远程访问

启动

安装Memcached

初始化yum源,将shopex-lnmp源加入到系统中,如果已经参照单机部署初始化过yum源了则省略此步骤

安装

配置

启动

静态资源服务器配置

通过NFS的方式将web服务器中的图片,模版,js登静态资源进行挂在到静态资源服务器,然后静态资源都通过该服务器进行调用

NFS安装

初始化yum源

将shopex-lnmp源加入到系统中,在线地址查看有哪些软件 http://mirrors.shopex.cn/shopex/shopex-lnmp/ 可以安装

安装epel扩展源

web服务器和storage服务器都安装nfs

启动NFS服务,启动顺序一定要先启动rpcbind,后在启动nfs

storage服务器都安装nginx

NFS配置

将web服务器中已有的资源复制到storage服务器

在storage服务器vim /etc/exports,加入如下参数

修改好执行命令exportfs -rv

查看是否成功

  • web服务器中静态资源挂载到storage服务器

解决跨域加载字体问题:firefox和IE9不支持对icon font字体的跨域访问

静态资源服务器修改nginx配置文件

主web配置

复制配置文件到production cp /data/httpd/config/storager.php /data/httpd/config/production/storager.php

修改配置文件vim /data/httpd/config/production/storager.php

web机代码同步,采取 rsync+inotify方式

说明:这里的配置是采取单向同步,采取 主web机 向 从web机 推送代码,如要双向同步,请自行配置

安装配置 rsync (主web机和从web机 都需要安装)

  • 安装 rsync
  • 编辑 rsyncd.conf 配置文件,如果没有则创建一个,主web服务器也可以不配置此文档,但是为了统一也可以配置一下
  • 并且约定从web机中的rsyncd配置的用户名和密码全部一样,如rsyncd.passwd 中为rsync:123456,并且模块名也一样,如rsyncd.conf中为salve_web
  • 同步的时候注意防火墙问题可能导致无法同步

  • 编辑 rsyncd.passwd 密码配置文件,如果没有则创建一个

    注意:添加以下内容的时候,千万要看清楚,不要全部复制粘贴,分主web服务器和从web服务器
  • 修改密码文件 /etc/rsyncd.passwd 的权限为600
  • 启动 rsync 服务并设置开机自启动。下面两行分别执行,不要全部复制粘贴
  • 验证代码是否能够同步, 在主web服务器上执行下面命令,如有报错,请自行查找原因,

安装配置 inotify (主web机需要安装,从web机不需要)

  • 安装 inotify
  • 配置rsync.sh同步监控脚本

    添加以下内容
  • 配置rsync.sh脚本的执行权限
  • 运行rsync.sh同步监控脚本和配置守护进程
  • 注意:如果inotify报错upper limit on inotify watches reached,要修改inotify的max_user_watches参数

负载均衡

安装 haproxy

配置

集群部署机器分配,具体请根据实际情况配置

机器 功能 端口
192.168.10.228 haproxy 80
192.168.10.229 web 1 80
192.168.10.230 web 2 80
192.168.10.231 web 3 80

192.168.10.228(负载均衡服务器) 编辑/etc/haproxy/haproxy.cfg文件

启动 haproxy

访问负载均衡服务器,检验效果

FAQ

1、同步的目录必须是已有的目录,并且权限正确

2、同步代码的配置中,请检查好模块名,密码等,主web服务器的密码文件中不需要写用户名,本文档中从web服务器之间的rsync配置的用户名和密码都是一致的

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  1   博主  0

  1. xiaojiangmo 1

    牛逼啊