如何选择Drupal托管服务?避免代价高昂的错误
为Drupal选择哪种托管服务,这是刚开始使用这款内容管理系统(CMS)的人最常问的问题之一。在这篇文章中,成都长风云Drupal开发团队将基于为波兰及国外客户实施Drupal项目15年的经验,解释选择Drupal托管服务时需要注意的事项,并简要介绍可用的选项。欢迎阅读本文,或者观看《现代Drupal系列》的相关剧集。
本文内容如下:
- 何时简单的Drupal托管服务就足够了?
- 选择Drupal托管服务前需确定的参数
- 技术要求——Drupal 10和Drupal 11
- Drupal托管服务的三种主要类型
- 共享托管——适合简单项目的解决方案
- 托管平台——为积极开发的项目实现自动化
- 具有root访问权限的服务器——为高级系统提供完全控制权
- 内容分发网络(CDN)作为节省Drupal托管成本的手段
- 正常运行时间、可扩展性以及在不同托管服务提供商之间迁移
- Drupal托管服务套餐概览
- 如何选择Drupal托管服务?总结
一、何时简单的Drupal托管服务就足够了?
在进行详细分析之前,值得先回答一个基本问题:是否真的需要进行深入分析呢?Drupal是一个用PHP编写的系统,使用MariaDB或类似的数据库。这种配置在托管行业中很常见,所以对于没有特殊要求且流量较低的项目,选择可以很简单直观。
在这种情况下,选择一个可靠的提供商并安装Drupal就足够了。即使配置不是最优的,也可以轻松地将系统迁移到其他托管服务上。Drupal在不同环境之间具有完全的可移植性,这在更改基础设施时为你提供了很大的灵活性。
然而,如果你正在运营或计划开展一个复杂的项目,拥有一个高流量的系统,或者需要精确定制的基础设施,那么本文的其余部分对你来说将至关重要。我将详细介绍各种选项,帮助你根据项目的具体情况做出明智的决策。
二、选择Drupal托管服务前需确定的参数
在选择托管服务之前,值得分析两个关键参数:系统复杂度和负载。
(一)系统复杂度验证
复杂度包括数据类型的数量、它们之间的相互关系以及内容的规模。例如,一个只有几种内容类型的简单博客与一个拥有20 - 40种不同数据类型且相互关系复杂的门户是完全不同的情况。
存储数据的规模也很重要——我们讨论的是数据库中有100 - 200条记录,还是几十万甚至数百万条记录呢?分析还应包括对额外服务的使用,例如用于搜索的Apache Solr、用于缓存的Redis,或者Drupal与外部系统的集成。系统越复杂,就越应该关注选择合适的托管基础设施。
(二)服务器负载分析
第二个关键参数是服务器负载。在典型的网络服务中,负载由两类群体产生:访问网站的用户和在CMS中管理内容的编辑人员。用户流量每天可能从几十次访问到数十万甚至数百万次不等。
内容编辑情况也类似。一种情况是一名营销专家每周发布一篇博客文章。另一种情况是10名编辑人员,每人每天添加20条或更多内容,然后对其进行编辑和修改,每次保存都会向服务器发起新的查询。其他负载来源可能包括交互式功能,如评论系统或用户表单。
记录当前和计划的使用场景,可以让你精确地将托管资源与项目的实际需求相匹配。 这样的分析是明智选择托管解决方案的基础。
三、技术要求——Drupal 10和Drupal 11
确定系统特征后,值得检查一下Drupal的技术要求。区分Drupal 10和11很重要,因为Drupal 10的支持将持续到2026年,许多网站在一段时间内仍将使用这个版本。版本之间的主要差异涉及所需的PHP和数据库版本。
大多数现代托管服务提供商都能轻松支持PHP 8.1和8.3。数据库方面的情况也类似,不过也有例外——一些较便宜的共享托管服务可能不支持Drupal 11所需的最新MariaDB版本。完整的技术要求列表可在Drupal的官方文档中找到。
在决定选择托管服务之前,检查这些要求很有必要,以免购买服务后出现意外情况。在选择较便宜的共享托管服务时,这一点尤其重要,因为与最新标准相比,PHP和数据库版本的更新可能会延迟。
四、三种主要类型的Drupal托管服务
Drupal托管服务套餐可以分为两大类:无Root访问权限(主要Linux系统管理员权限)的托管服务和具有完全访问权限的托管服务。 第一类又可进一步分为两个子类别。
- 共享托管 是最受欢迎的服务,提供商将数十个或数百个客户账户放在一台服务器上。
- 平台即服务 是一种专用解决方案,将Web服务器、PHP支持和数据库与额外功能相结合——如Git集成、创建多个系统实例进行测试的能力,或部署自动化。
在本文的其余部分,我们将分析三种主要类型的托管服务:共享托管、托管平台和具有Root访问权限的服务器。我们将讨论每种解决方案的优缺点,并确定它们最适合哪些项目。
五、共享托管——适合简单项目的解决方案
对于简单项目,如子页面少于50 - 100个、很少编辑且流量不高的公司网站,共享托管将是理想的解决方案。 在这种情况下,你几乎可以选择任何提供商,而无需深入分析技术参数。
(一)共享托管的优点
共享托管的主要优点是价格低廉。套餐通常每年约600波兰兹罗提起(约每月50波兰兹罗提),第一年通常有促销活动,价格甚至可能减半。这使得共享托管成为小型项目和刚开始使用Drupal的公司最经济的选择。
设置环境通常只需十几分钟——只需填写一份表格、完成付款,托管账户即可使用。服务器、PHP配置和数据库都已准备好,剩下的就是上传Drupal文件和数据库,或者从头开始安装系统。
另一个优点是直观的管理面板,便于添加新域名和子域名。一个重要的优点是能够在一个账户上托管多个网站——这一功能对同时管理多个项目的机构和公司特别有用。
(二)共享托管的缺点
共享托管的主要缺点是配置和可用资源(处理器、内存)有限。运行CRON作业或其他后台进程时也可能出现问题。需要特定PHP设置或高级自动化任务的项目可能对这种类型的托管服务要求过高。
由于资源共享模式,共享托管的性能可能不稳定。一台服务器要处理数十个,有时甚至数百个客户的账户。如果其他账户的负载不高,网站运行会很顺畅。然而,当服务器被其他用户过载时,可能会影响你的网站性能。
如果出现性能问题,值得联系托管公司,请求将账户迁移到另一台服务器。大多数提供商都提供这种可能性,特别是当你能说明具体问题时。这比迁移到完全不同的提供商要简单。
六、托管平台——为积极开发的项目实现自动化
托管平台提供了更多功能,尤其适用于积极开发的项目。 如果你每周或每隔几天就部署新功能,需要测试环境,并且与程序员团队合作,那么托管平台可以自动化整个部署过程。
(一)托管平台的优点
平台账户总是与Git仓库集成。只需将更改推送到相应的分支或创建一个新标签,系统就会自动将它们部署到生产环境或专用测试环境。可以在部署过程中定义各种自动化操作。虽然在具有SSH访问权限的共享托管上也可以创建类似的配置,但这需要自行编写并后续维护脚本,会花费额外的时间。
平台通常依赖Docker镜像,这使得添加诸如Apache Solr、Redis或Memcache等服务变得容易。与传统托管相比,扩展项目和增加功能要简单得多。能够立即启动与生产环境相同的开发环境,大大降低了部署过程中出现错误的风险。
(二)托管平台的缺点
托管平台的主要限制是存在一定的配置限制。尽管它们通常提供广泛的自定义选项,但对于负载高的非常复杂的系统,可能并非所有PHP或数据库参数都能根据需要进行更改。另一个挑战是价格——对于需要大量资源的服务,成本可能很高。
如果平台的月成本在200 - 1000欧元之间,值得分析一下从头搭建一台专用服务器是否更具成本效益。这样的分析应包括准备服务器所需的时间以及后续管理的成本。综合考虑所有因素,才能做出最优决策。
与共享托管相比,一个重要的区别是:平台上的一个账户对应一个网站、一个系统。对于多个项目,需要分别付费。对于管理多个项目的机构来说,成本可能会迅速增加,因此需要进行仔细的经济分析。
七、具有root访问权限的服务器——为高级系统提供完全控制权
第三种选择是具有完全root访问权限的服务器——虚拟专用服务器(VPS)、云服务器或传统的专用服务器(不过后者的使用越来越少)。主要优点是具有完全的配置自由和几乎无限的环境定制可能性。
(一)具有完全访问权限的服务器的优点
在这样的服务器上,你可以使用Docker或Kubernetes,选择任何容器镜像——包括公开可用的和为特定项目创建的自有镜像。既可以实现简单的配置,也可以构建非常复杂的架构。
具有完全访问权限的服务器还可以实现自定义的CI/CD流程(持续集成/持续部署)。在部署新系统版本时的所有特定操作都可以根据个人需求进行定制。这种灵活性对于需要非标准解决方案或与许多外部系统集成的非常复杂的项目来说是非常宝贵的。
(二)具有完全访问权限的服务器的缺点
至于缺点,这里肯定需要额外的资源,例如与服务器维护和初始配置相关的时间或预算。在环境复杂的情况下,未来迁移到其他托管服务也会更耗时,这也应纳入托管选项的分析中。
应该记住,拥有自己的服务器不仅意味着更大的控制权,也意味着更大的责任。需要持续监控、进行安全更新、备份数据,并对故障做出快速响应。因此,值得考虑公司团队是否具备相应的技术能力,或者是否有预算聘请外部公司来进行服务器管理。
八、内容分发网络(CDN)作为节省Drupal托管成本的手段
在分析托管选项时,值得考虑实施内容分发网络(CDN),它可以显著减少所需的托管资源。我们的一个项目案例展示了可能的节省规模: 在30天内,系统处理了来自200万独立用户的超过4亿次请求,其中超过90%由CDN服务器(在这个案例中是Cloudflare)提供服务,而不是托管服务器。
效果非常显著——所需的托管服务器资源可以减少约10倍,因为只有10%的流量直接到达服务器,其余90%的流量从CDN服务器提供给用户。这意味着在服务器资源和带宽方面都能节省大量成本,直接转化为更低的月费用。
(一)适用于简单公司网站的CDN
即使对于简单的公司网站,也值得实施CDN,特别是因为基本账户是免费的。然而,应该记住一个限制:Drupal中带有表单的页面默认禁用缓存,因此它们不会从CDN提供,而是直接从托管服务器提供。
可以通过各种方式解决这个问题,但默认情况下,每个带有报价请求表单或评论的页面都不会被缓存。在设计网站架构并考虑替代解决方案时,例如将表单放在动态加载的模态框中,以保持缓存整个页面的优势,这一点值得牢记。
九、正常运行时间、可扩展性以及在不同托管服务提供商之间迁移
除了基本的托管类型外,几个运营因素会对Drupal网站的长期成功产生重大影响。了解正常运行时间保证、可扩展性选项和迁移过程,有助于你避免常见的陷阱,并确保你的托管服务能够随着项目的发展而扩展。
(一)正常运行时间保证
大多数托管服务提供商都会在其网站上展示服务器正常运行时间数据——通常是99%或99.9%左右的值。然而,值得查看服务条款,因为它们通常不包含实际的未来正常运行时间保证。如果你的系统需要99%或更高的正常运行时间保证,你应该询问具有服务水平协议(SLA)保证的专用服务。
这样的保证通常与签订一到两年的合同相关,并且成本比标准价格表中的要高。并非每个提供商都提供这样的选项——特别是在共享托管领域。SLA保证通常在更昂贵的托管平台套餐或专用服务器中提供。
(二)资源可扩展性
另一个值得关注的方面是托管服务的可扩展性,即动态更改可用资源(处理器、内存)的能力。这对于具有季节性特点的项目尤为重要,在这些项目中,用户流量在一年中的某些时期会显著增加。共享托管通常不提供动态资源扩展选项。
托管平台和云服务器支持扩展,但值得深入了解这个过程的细节。一个关键问题是参数更改是否需要中断网站运行——以及这种中断可能持续多长时间(一分钟、两分钟,还是可能一小时)。这些信息可以帮助你合理规划流量高峰期,避免在业务关键时期出现停机。
(三)服务器之间的迁移
还值得考虑在不同托管服务提供商之间进行潜在的迁移。系统需求可能会发生变化——项目可能变得更复杂,流量可能增加,或者可能出现需要更好基础设施的新功能。因此,在选择托管服务时就了解迁移到其他提供商的过程是很有必要的。
系统越复杂,迁移过程可能就越复杂和耗时。你应该确保能够轻松访问所有数据、备份和导出配置。一些托管平台提供便于迁移的工具,这在选择提供商时可能是一个重要的考虑因素。
十、Drupal托管服务套餐概览
以下托管服务套餐概览基于成都长风云Drupal开发团队积累的经验以及Facebook上Drupal PL群组用户的建议。需要强调的是,这不是对特定提供商的推荐——每个项目都有各自的需求,需要单独分析。
如果你需要根据项目具体情况提供Drupal托管服务推荐,随时联系我们——我们将帮助你选择最优解决方案。
(一)共享托管
共享托管是特别适合小型项目的解决方案,尤其是公司网站。Drupal系统几乎可以在任何共享托管服务上运行,因此选择特定的提供商可以比较灵活。
选择共享托管服务时,不仅要关注价格,还要关注技术参数:PHP和数据库版本、内存限制、SSH访问权限以及技术支持质量。其他Drupal用户对特定托管服务的评价也可能会有帮助。
(二)托管平台
在托管平台中,有几个主要的参与者脱颖而出。Acquia不公开其价格,需要单独联系。他们的服务主要针对需要高性能和大量资源的大型系统。
其他平台,如Upsun(前身为Platform.sh)和Pantheon,为不同规模的项目提供套餐。选择平台时,不仅要分析价格,更要关注提供的功能范围。托管平台的主要优点是将虚拟专用服务器(VPS)或专用服务器的功能与一个现成的、完全配置好的环境相结合。这消除了聘请专家进行服务器配置和维护的需要,这一点应纳入总体成本分析。
Upsun(前身为Platform.sh)在中型项目中特别受欢迎,它在价格和功能之间取得了很好的平衡。每个平台的功能和定价模式略有不同,因此值得根据项目的具体需求进行全面比较。
(三)VPS和云服务器
具有完全访问权限的服务器包括传统的VPS、云服务器和专用服务器。根据我们的经验,我们最常为云服务器使用阿里云、腾讯云等,为国外项目使用亚马逊网络服务(AWS)。
阿里云、腾讯云、AWS提供了很大的灵活性和最广泛的服务,但也需要最多的技术知识。另一方面,Hetzner提供非常有竞争力的价格和稳定的性能,使其成为中型项目的热门选择。Cloudflare也作为需要高级分布式拒绝服务(DDoS)保护和全球内容分发的项目的一个选项出现。
十一、如何选择Drupal托管服务?总结
对于简单项目,如小型公司网站,选择很简单——共享托管服务就足够了。无需使选择复杂化,也无需为不会使用的高级功能多花钱。
对于更复杂的系统,决策过程需要分析几个关键因素:是什么使系统复杂,当前或未来的负载如何,技术要求是什么,是否需要正常运行时间保证,是否需要扩展选项,有多少预算用于托管,以及是否有资源(时间或预算)用于服务器管理。
分析这些参数后,你可以选择合适的托管类型:共享托管、托管平台或具有完全访问权限的服务器。下一步是评估特定提供商的套餐,并选择最适合项目具体情况的解决方案。
如果你没有时间进行独立分析,成都长风云Drupal开发团队可以帮助你选择最优解决方案。我们还可以为你的系统配置专用的VPS或云服务器。随时联系我们——我们将帮助你选择Drupal托管服务。


