部署

2018-11-14 09:23:29

实例与域名

Cabloy通过多实例的概念来支持多域名站点的开发,实例与网站子域名一一对应。比如instance1.cabloy.orginstance2.cabloy.org

本地开发环境,Cabloy启用了一个缺省实例;但在生产部署环境,需要规划实例与子域名的对应关系

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

多站点支持

由于一个实例对应一个CMS应用,通过多实例就可以支持多站点

实例配置

编辑文件:src/backend/config/config.prod.js

// instances
config.instances = [
  { subdomain: 'admin', password: '', title: '',
    config: {
      'a-base': {
        jsonp: { whiteList: 'example.com' },
      },
    },
  },
];
名称 说明
subdomain 子域名
password 实例中用户root的初始访问密码
title 网站标题
config[‘a-base’].jsonp.whiteList 跨域访问白名单,只有白名单中的域名才可以通过ajax访问后端API接口

构建前端代码

$ npm run build:front

启动后端服务

$ npm run start:backend
  • 别忘了创建MySQL数据库,并配置src/backend/config/config.prod.js

停止后端服务

$ npm run stop:backend

后端服务启动参数配置

编辑文件:build/config.js

// backend
const backend = {
  port: 7002,
  hostname: '127.0.0.1',
};

nginx配置

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

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

动态部分:nginx.conf

server {

  listen 80;
  server_name admin.example.com;
  set $node_port 7002;

  root /Users/wind/Documents/temp/cabloy-cms/dist;

  location /public {
    root /Users/wind/cabloy/cabloy-cms;
    internal;
  }

  location  /api/ {
    proxy_http_version 1.1;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Host $server_name;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_pass http://127.0.0.1:$node_port$request_uri;
    proxy_redirect off;
  }

}

静态部分:nginx-cms.conf

server {

  listen 80;
  server_name example.com;

  root /Users/wind/cabloy/cabloy-cms/public/1/cms/dist;

}


评论: