用14台虚拟机搭建一个高可用负载均衡集群架构出来,并运行三个站点,具体需求如下。

  1. 设计你认为合理的架构,用visio把架构图画出来

  2. 搭建lnmp、tomcat+jdk环境

  3. 三个站点分别为:discuz论坛、dedecms企业网站以及zrlog博客

  4. 由于机器有限,尽可能地把三个站点放到同一台服务器上,然后做负载均衡集群,要求所有站点域名解析到一个ip上,也就是说只有一个出口ip

  5. 需要共享静态文件,比如discuz需要共享的目录是 data/attachment,dedecms需要共享upload(具体目录,你可以先上传一个图片,查看图片所在目录)

  6. 设计合理的目录、文件权限,比如discuz的data目录需要给php-fpm进程用户可写权限,其他目录不用写的就不要给写权限(目录755,文件644,属主属组root)

  7. 所有服务器要求只能普通用户登录,而且只能密钥登录,root只能普通用户sudo

  8. 给所有服务器做一个简单的命令审计功能

  9. php-fpm服务要求设置慢执行日志,超时时间为2s,并做日志切割,日志保留一月

  10. 所有站点都需要配置访问日志,并做日志切割,要求静态文件日志不做记录,日志保留一月

  11. 制定合理的mysql数据备份方案,并写备份脚本,要求把备份数据传输到备份服务器

  12. 制定代码、静态文件的备份方案,并写备份脚本,要求把备份

    编写数据恢复文档,能保证当数据丢失在2小时内恢复所有数据

  13. 搭建zabbix监控告警系统,要求监控各个基础指标(cpu、内存、硬盘),网卡流量需要成图,还需要监控web站点的可用性,

  14. 定制自定义监控脚本,监控web服务器的并发连接数,超过100告警

  15. 定制自定义监控脚本,监控mysql的队列,队列超过300告警

  16. 定制自定义监控脚本,监控mysql的慢查询日志,每分钟超过60条日志需要告警,需要仔细分析慢查询日志的规律,确定日志条数

  17. 给三个站点的后台访问做二次认证,增加安全性

  18. 用shell脚本实现文件、代码同步上线(参考分发系统)