写在前面:

转载请注明出处

  • 什么是CM和CD服务器?
    CM (Content Management) 服务器,是用来后台管理,设置和发布Sitecore实例的管理系统服务器,通过登录CM,内容管理者仅需最基本的技术背景即可使用Sitecore CM来对网站内容进行编辑和发布。

    CD (Content Delivery) 服务器, 是用来承载公开Sitecore实例的服务器。用户实际访问的网站是存贮在这个服务器上的,与CM服务器不是同一个服务器所以用户并不能访问Sitecore后台管理系统。

    一般来讲,CM的Url是比较私密的,不能被匿名用户访问。CD的Url是公开的,匿名用户可以访问并浏览。CM与CD均为Sitecore的实例 (Instance), 最简单的Sitecore的CM与CD分布式部署仅需两个Sitecore 客户端 (Client) 和一个Sitecore 数据库 (即可), 其中一个Sitecore 客户端用来作为CM,另一个用来作为CD,通过调整web.Config中的参数来使CM与CD通数据库连接,再通过调整IIS的权限来区分CM与CD,最后通过调整Sitecore文件系统中的大部分配置文件来对CM与CD进行个性化设置及优化。

    下面是最简单的CM与CD分布式部署:
    (警告:不要在实际生产环境中使用以下构架,以下构架仅可用于开发或测试环境)

  • 为什么需要CM与CD服务器?

    1. 安全性提高,若CD服务器被入侵,可以使用CM服务器来重新建立CD服务器,所有网站内容不会受到影响,重新上线速度快。
    2. 可以根据实际情况分别对CM及CD服务器的性能进行提高从而提高硬件使用效率,节省资源,节省资金,提高用户体验等。
    3. CM服务器可以成为潜在的预览服务器,当有新内容需要发布时,可以先发布到预览数据库,仅有内部人员可以访问,无论是内容部门,法律部门还是审阅部分均可进行最终查阅和测试。
正文目录:
  1. 在CM和CD服务器上分别安装Sitecore实例
  2. 对CM服务器进行配置
  3. 对CD服务器进行配置
  4. 分别访问CM实例与CD实例进行测试
  5. 比较合理的生产环境Sitecore构架

正文:

  1. 根据这个安装教程,在CM服务器上,安装一整套Sitecore实例 (在第4步选择"Complete")。在CD服务器上,只安装客户端实例 (在第四部选择"Client Only")。命名Sitecore实例的时候尽量使用描述性名称譬如xx-cm和xx-cd。更深一步: Sitecore 数据库部署并为审核审查部门配置一个预览数据库。

  2. 对CM服务器进行配置,部分转载并翻译自Sitecore官方CM配置文档
    (警告:不要直接对文件进行更改,使用patch文件在runtime时来加入必要的设置,详情请移步如何使用patch文件)

    1). 根据Sitecore官方CM配置页第4步,下载相对应Sitecore版本的配置文档,并根据配置文档对在Sitecore实例文件系统中的App_Config文件夹下的配置文件进行启用(Enable)和禁用(Disable)。对于需要启用的配置文件,只需将扩展名从".disabled"删掉,并确保删掉后文件的扩展名是".config"; 对于需要禁用的配置文件,需要将文件扩展名后添加".disabled"。因为之前安装教程中使用的是Sitecore 8.2 - Update 6, 所以下载的Excel文件是"Config-Enable-Disable-Sitecore-8.2-Update6-7.xlsx"。

    2). 对配置文件中的一些参数进行修改:

    文件名 修改部分 配置意义 参数名 参数数值
    Sitecore.Social.config configuration/sitecore/settings/setting name=“Social.LinkDomain” 设定此数值将使所有由社交媒体模块产生的连接含有此名称 value [CD服务器域名]
    ScalabilitySettings.config configuration/sitecore/settings/setting name=“InstanceName” 在其他相连服务器上使用此名称来识别此CM实例, 如果为空,则Sitecore将会使用机器名称+IIS网站名称来命名 patch:attribute name [CM实例特殊名称]
    Sitecore.Xdb.Remote.Client.config configuration/sitecore/httpTransportFactory/param desc=“serviceUrl” 用来设置远程Reporting功能的Url, 仅需当Reporting是在其他服务器时设置 param desc=“serviceUrl” [远程Reporting的网址]

    3). 按照2-1对CM进行配置文件的启用和禁用后,搜索指数应该也已经配置好,官方配置文档有这一步,如果没有配置好请根据2-1的文档进行配置。

  3. 对CD服务器进行配置, 部分转载并翻译自Sitecore官方CD配置文档

    1). 根据与CM配置相同的配置文件启用禁用文档,对于相对应的配置文档进行启用或禁用

    2). 同样,对配置文件中的一些参数进行修改

    文件名 修改部分 配置意义 参数名 参数数值
    ScalabilitySettings.config configuration/sitecore/settings/setting name=“InstanceName” 在其他相连服务器上使用此名称来识别此CD实例, 如果为空,则Sitecore将会使用机器名称+IIS网站名称来命名 patch:attribute name [CD实例特殊名称]
    Sitecore.Analytics.config configuration/sitecore/scheduling/ 用来设定多久用Email发一次数据统计报告, CM实例来处理这一项任务所以CD实例不需要此配置 agent type=“Sitecore.Analytics.Tasks.EmailReportsTask, Sitecore. Analytics” 注释掉以下部分: < agent type=“Sitecore.Analytics.Tasks.EmailReportsTask, Sitecore.Analytics” method=“Run” interval=“1:00:00”>< DatabaseName>master< /DatabaseName>< /age>
    Sitecore.Analytics.Tracking.config < setting name=“Analytics.DefaultDefinitionDatabase” value=“master” /> 设定对哪一数据库进行数据统计 Analytics.DefaultDefinitionDatabase web
    configuration/sitecore/settings 为均衡负载(Load Balancer)提供专CD实例的专有名称 Analytics.ClusterName < setting name=“Analytics.ClusterName” value="[LoadBalancer1的名称].[公开域名].com">
    configuration/sitecore/settings 为所有CD实例提供整体网址 Analytics.HostName 对于所有CD实例都应相同, 对于一个Sitecore实例包含多个网站, 此变量必须为空
    Sitecore.Buckets.config configuration/sitecore/databases/database 设置Bucket的数据库, 因为是CD实例, 所以不适用master数据库 database id=“master” 注释以下部分: < database id=“master” singleInstance=“true” type=“Sitecore.Data.Database, Sitecore.Kernel”?<Engines.DataEngine.Commands.AddFromTemplatePrototype>< obj type=“Sitecore.Buckets.Commands.AddFromTemplateCommand, Sitecore.Buckets” /></Engines.DataEngine.Commands.AddFromTemplatePrototype>< /database>
    Sitecore.ContentSearch.config configuration/sitecore/scheduling/agent 设置需要优化的索引(Index), 因为是CD所以不优化master索引 Agent type=“Sitecore.ContentSearch.Tasks.Optimize” 注释以下部分:< agent type=“Sitecore.ContentSearch.Tasks.Optimize” method=“Run” interval=“01:00:00”>< indexes hint=“list”>< index>sitecore_master_index< /index>< /indexes>< /agent>
    Sitecore.ContentSearch.DefaultConfigurations.config configuration/sitecore/contentSearch/indexConfigurations/indexUpdateStrategies/ 是否使用此策略来记录有变化的已发布(publish)的需要加入Index的Sitecore件(item)的数据库, 以及多久记录一次, 因为我们需要从CM实例来重建index, 所以CD实例不需要此配置 intervalAsyncMaster 注释以下部分:< intervalAsyncMaster type=“Sitecore.ContentSearch.Maintenance.Strategies.IntervalAsynchronousStrategy, Sitecore.ContentSearch”>< param desc=“database”>master< /param>< param desc=“interval”>00:00:05< /param>< CheckForThreshold>true< /CheckForThreshold>< /intervalAsyncMaster>
    configuration/sitecore/contentSearch/indexConfigurations/indexUpdateStrategies/ 同上,也是配置一种更新index的策略的数据库,趋近于实时更新, 因为是CD实例所以不需要 syncMaster 注释以下部分:< syncMaster type=“Sitecore.ContentSearch.Maintenance.Strategies.SynchronousStrategy, Sitecore.ContentSearch”>< param desc=“database”>master< /param>< /syncMaster>
    Sitecore.Social.config configuration/sitecore/settings/setting 用来配置社社交媒体的搜索index, CD实例应当使用web数据库 name=“Social.Messages.SearchIndex.Master” social_messages_web
    Sitecore.config configuration/sitecore/sites/ 设置读取shell内容的数据库, shell包括Sitecore的一些自带管理功能, CD实例应当使用web数据库 site name=“shell” content=“master” web
    configuration/sitecore/sites/ 同上,设置读取modules的数据库, CD实例因当时用web数据库 site name=“modules_shell” content=“master” web
    configuration/sitecore/IDTable/ 同上, 配置ID表的数据库, CD实例应当使用web数据库 connectionStringName web
    configuration/sitecore/databases/ 配置Sitecore的数据库, CD实例不需要使用master数据库 database id=“master” 注释以下部分:< database id=“master”>….< /database>
    configuration/sitecore/scheduling/ 配置发布(Publish)的相关设置, 应由CM实例管理, CD实例不需要 < agent type=“Sitecore.Tasks.PublishAgent”> 注释以下部分: < agent type=“Sitecore.Tasks.PublishAgent” method=“Run” interval=“00:00:00”>< param desc=“source database”>master< /param>< param desc=“target database”>web< /param>< param desc=“mode (full or smart or incremental)”>incremental< /param>< param desc=“languages”>en, da< /param>< /agent>
    Sitecore.Marketing.Search.config configuration/sitecore/marketingDefinitions 设置marketing definition的数据库, 包括营销活动(campaign), 营销目标(goal), 营销对象(profiles), 营销投放(patterns), CD实例应使用web数据库 searchIndexName sitecore_marketingdefinitions_web
  4. 分别访问CM实例与CD实例的网址进行测试。登入CM对网站内容进行一些修改, 浏览整个网站, 确保没有任何错误

  5. 下图为一个比较合理的实际生产环境中可以使用的Sitecore构架:

Sitecore 8 基础II - Sitecore CM与CD服务器部署相关推荐

  1. Sitecore 8 基础I - 获取Sitecore license并安装Sitecore

    写在前面: 转载请注明出处 什么是Sitecore? Sitecore是一个高度可定制的CMS (内容管理系统).它的优势在于它集成了一个功能强大的营销系统,其可靠高效的营销手段譬如Campains, ...

  2. 运维基础(6)CI / CD

    欢迎关注微信公众号[厦门微思网络].www.xmws.cn专业IT认证培训19周年 主要课程:思科.华为.红帽.ORACLE.VMware.CISP.PMP等认证培训及考证 在 CI /CD 和 De ...

  3. 服务器部署基础知识_我在生产部署期间学到的知识

    服务器部署基础知识 by Shruti Tanwar 通过Shruti Tanwar 我在生产部署期间学到的知识 (What I learned during production deploymen ...

  4. SaltStack介绍——SaltStack是一种新的基础设施管理方法开发软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流...

    SaltStack介绍和架构解析 简介 SaltStack是一种新的基础设施管理方法开发软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流,以毫秒为单位.SaltSta ...

  5. IOS开发基础之使用AFNetworking框架下载服务器资源图片

    IOS开发基础之使用AFNetworking框架下载服务器资源图片 info.plist加入这句 <key>NSAppTransportSecurity</key> <d ...

  6. Oracle数据库基础入门《一》Oracle服务器的构成

    Oracle数据库基础入门<一>Oracle服务器的构成 Oracle 服务器是一个具有高性能和高可靠性面向对象关系型数据库管理系统,也是一 个高效的 SQL 语句执行环境. Oracle ...

  7. Azure DevOps+Docker+Asp.NET Core 实现CI/CD(三.实现CD持续部署管道)

    前言 本文主要是讲解如何使用Azure DevOps+Docker 来实现持续集成Asp.NET Core项目(当然 也可以是任意项目). 上一篇: Azure DevOps+Docker+Asp.N ...

  8. 持续集成与持续部署(五)03-TravisCI——Travis CI和Docker的持续集成之所使用的基础组件、dockerfile配置、docker部署脚本

    持续集成与持续部署(五)03-TravisCI--Travis CI和Docker的持续集成之所使用的基础组件.dockerfile配置.docker部署脚本 所使用的基础组件 代码托管在Github ...

  9. php服务器视频教程,从PHP基础到实战高手 高性能Linux服务器构建实战 千峰教育PHP全新版高级视频教程...

    从PHP基础到实战高手 高性能Linux服务器构建实战 千峰教育PHP全新版高级视频教程 非常厉害的一套PHP实战课程,系统的学习完成后可以从零基础的PHP新手, 成长为能独立完成高性能服务器部署的实 ...

最新文章

  1. OpenCV-Python我刚写六行代码就出了个惊天BUG
  2. 全球第二家 亚马逊“喜提”万亿美金市值 AI或是最大功臣
  3. linux 安装分区设置分区大小
  4. ASP.NET MVC过滤器(一)
  5. mac mysql start 失败_mac mysql 启动出错,请教解决办法
  6. 编写下载服务器。 第六部分:描述您发送的内容(内容类型等)
  7. 超简单的mysql多实例布置
  8. vc mysql 查询_VC++数据库模糊查询及精确查询示例代码分享
  9. c# Chart 服务器端动态创建ChartArea
  10. install lsa package for R on ubuntu 10.04 lts lucid
  11. 密码必须至少为6个字符_1081 检查密码 (15分)
  12. Vue:Vue项目中引入第三方库报错Unexpected token ‘<‘
  13. python娃娃在地上摆积木_Python中乐高积木——函数
  14. 爬虫爬取文件(图片,视频)
  15. sqli-labs靶场Less-20~22 Cookie注入
  16. jar包双击打不开或者闪退的解决办法
  17. 华东、华北、华南的城市
  18. 狂神。JavaWeb学习(2)
  19. 2019-10 前端技术汇总
  20. python学习:最适合初学者的8本Python书籍

热门文章

  1. 交通路况可视化_covid 19大流行期间空中交通的可视化
  2. 蓝驰创投陈维广:创业者不应过早进入大众市场
  3. jQueryEasyUI实现房贷计算器详细教程2--jQuery部分
  4. mysql日期转换成数字在线转换_MySQL中时间--gt;数字转换和IP地址--gt;数字转换(转) - - ITeye博客...
  5. tqdm介绍及常用方法
  6. 医生告诉我们的常识.读完它吧,你会一生受益
  7. iOS上架iOS上架规范规范
  8. slq clause
  9. MATLAB-自定义函数拟合(lsqcurvefit)
  10. 常用的Sql命令之创建表