多站点支持

通过CabloyJS提供的多实例特性,可以实现多站点支持,比如为不同的企业建站。请参见:EggBornJS:多实例

实例配置

在Cabloy-CMS应用中,一般把域名example.com留给静态文件,从而需要给后台管理系统分配一个子域名,比如portal.example.com

名称 域名 说明
静态部分 example.com 所有静态文件
动态部分 portal.example.com 为静态部分提供Api接口服务

src/backend/config/config.prod.js

  1. 1// instances
  2. 2config.instances = [
  3. 3 { subdomain: 'portal', password: '', title: ''},
  4. 4];
名称 说明
subdomain 子域名
password 实例中用户root的初始访问密码,缺省为123456
title 网站标题

跨域配置

由于静态站点后台管理系统分别采用了不同的域名,因此需要在后台管理系统配置跨域参数

src/backend/config/config.prod.js

  1. 1// module config
  2. 2config.modules = {
  3. 3 'a-base': {
  4. 4 cors: {
  5. 5 whiteList: 'http://some.front.com',
  6. 6 },
  7. 7 },
  8. 8};
名称 说明
cors.whiteList 跨域访问白名单,只有白名单中的域名才可以通过ajax访问后端API接口。可以是逗号分隔的多个域名。

构建前端代码

  1. 1$ npm run build:front

启动后端服务

  1. 1$ npm run start:backend
  2. 2or
  3. 3$ npm run start:backend -- --daemon --workers=2
  • 别忘了创建MySQL数据库,并配置src/backend/config/config.prod.js

停止后端服务

  1. 1$ npm run stop:backend

后端服务启动参数配置

build/config.js

  1. 1// backend
  2. 2const backend = {
  3. 3 port: 7002,
  4. 4 hostname: '127.0.0.1',
  5. 5};

nginx配置

强烈建议使用nginx托管前端静态资源,并反向代理后端服务

在项目根目录已经生成了两个nginx配置文件,分别对应Cabloy-CMS的动态部分静态部分,请根据实际情况修改

动态部分:nginx.conf

请参见:nginx配置

静态部分:nginx-cms.conf

  1. 1server {
  2. 2
  3. 3 listen 80;
  4. 4 server_name example.com;
  5. 5
  6. 6 root {publicDir}/{instanceId}/cms/dist;
  7. 7
  8. 8}