【域名配置规范】 1.发布版本域名: 主域名:http://www.yourigou.com 对应目录:client-home/web API域名:http://local.api.yourigou.com 对应目录:api-business/web 访问限制:只允许内网apache服务器IP访问。 静态资源域名:http://static.yourigou.com 对应目录:mount-static 存储方案:目前用NFS存储,将对应的云盘映射到apache目录下的mount-static目录即可。后续升级为OSS方案。 数据库域名:db.yourigou.com:3306 使用mysql服务器,只允许内网apache服务器IP访问。 代码权限数据库账户: 用户名db.yourigou.com,随机密码???。 (权限为insert/select/update) 内网DNS搭建: 第一版先暂时用公网DNS解析内网IP。 后续在内网中搭建内网DNS服务器,对于所有内网服务器增加第一个DNS Server指向内网DNS服务即可。 其他说明: 第一版暂时不做admin/ucenter/api/home/website相关的机器分离,通过入口文件跳转指向对应工程。 后续根据需要进行对应工程的服务器隔离,从普通用户的角度看到的发布网站对应的网址如下: http://www.yourigou.com 平台前台,对应client-home http://www.yourigou.com/w-用户ID 暂未实现,商家店铺前台,对应client-website。 http://www.yourigou.com/ucenter 用户中心,对应client-ucenter 买家测试帐号:用户名,密码。(完全帐号权限,发布上线后运营团队需要禁用此帐号确保安全) 卖家测试帐号:用户名,密码。(完全帐号权限,发布上线后运营团队需要禁用此帐号确保安全) http://www.yourigou.com/admin 管理员后台,对应client-admin。 管理员测试帐号:用户名,密码。(完全帐号权限,发布上线后需要运营团队自行修改其他密码确保安全) 2.预发布版本域名: 暂不支持,直接从研发版本代码合并到发布版本,发布代码权限仅限应用开发主管或架构人员或者经验熟练达到可以维护发布版本的能力要求。 3.研发版本域名: 主域名:http://test.yourigou.com 对应目录:client-home/web API域名:http://test.api.yourigou.com 对应目录:api-business/web 允许公网访问方便应用开发直接调试api接口。 静态资源域名:http://test.static.yourigou.com 对应目录:mount-static 本地存储方案,暂不考虑OSS机制。就一个大磁盘也无需云盘NFS挂载。 数据库域名:http://test.db.yourigou.com:3306 使用mysql服务器,只允许内网apache服务器IP访问。 数据库域名:test.db.yourigou.com:3306 使用mysql服务器,允许任意公网IP访问(后续增加VPN必须要登录VPN后才可以访问) 代码权限数据库账户: 用户名:test.db.yourigou, 随机密码:2ab0e18e85b396c020708ea09d1a8afd4864a6a57806f64cd6c317e90498e1e5。 (权限为全部权限) 4.本地虚拟机域名: 主域名:http://local.yourigou.com 对应目录:client-home/web windows下配置hosts API域名:http://local.api.yourigou.com 对应目录:api-business/web windows和vagrant下都要配置hosts 静态资源域名:http://local.static.yourigou.com 对于非assets目录,重定向到http://test.static.yourigou.com 本地存储方案,暂不考虑OSS机制。 1.本地上传文件后,需要在后台自动同步将文件上传到研发服务器指定目录上。 2.缩略图生成算法改进。 如果本地没有原图,到研发服务器上下载原图,生成对应的缩略图。 如果已经有原图,查看是否有对应此处的缩略图,没有生成对应的缩略图。 应用暂不支持删除图片,原始图片文件名按照时间撮生成。 对于assets目录,重定向到本地nginx图片服务器上处理。 http://test.static.yourigou.com/assets 数据库域名:test.db.yourigou.com:3306 直接使用研发服务器上的数据库。 此方案存在的问题: 数据库的修改会影响API相关的其他模块的接口,代码与数据的表结构不同步问题。 规避方案: a.client-*只依赖API接口,不允许出现任何的数据库操作。 b.API模块化开发,依赖其他模块尽量接口依赖而非表依赖。 c.如果有相关表依赖的模块,尽量工作上由单人负责维护,不要出现多人同时修改的问题。 修改完表结构需要立刻将相关的代码修改正确。 尽量在晚上或周末应用不递交代码的时候修改。 数据库管理规范: 1.数据库专人统一设计更改和优化(沈杰) => 开发过程中有人表设计需要更改(仅限于后端应用开发者)统一与数据库总设计人员沟通研讨必要的设计增加需求 => 设计完成后mysql workbench的模型同步变更到研发服务器上(专人负责) => 定期发布:数据库研发服务器版本同步到发布服务器上由数据库设计责任人负责完成(专人负责) 2.mysql workbench的设计文档,存放在dev-doc/database目录下,每次修改增加一个文件的版本号避免在原文件上修改。 3.数据库的备份读写分离负载均衡等由运维人员负责完成。 项目代码中环境配置增加四种类型: 本地环境,研发环境,预发布环境,发布环境。 通过yii2的命令自动切换不同的环境配置。 默认配置为本地环境,vagrant为本地环境,dev为研发环境配置,prod为发布环境配置。 研发服务器选型: 研发服务器选择阿里云杭州节点ECS和OSS。 OSS杭州节点预研缩略图自动生成机制,改写yii2的缩略图接口封装实现支持本地存储和OSS存储两种方案。