我们的一位读者查看了 “帮助初学者了解如何使网站上线”,并对托管提供商提出了几个后续问题。 以下是他们所问的:
托管提供商之间有什么区别? 例如,GoDaddy 和 Hostgator 这样的“传统”网络托管提供商与 Heroku、Digital Ocean、AWS 和 Firebase 等其他托管提供商有什么区别?
我什么时候应该使用哪一种?
他们希望得到详细的见解,所以我打算满足他们的要求!
选择计划
您首先提到了 GoDaddy,所以让我们看看 GoDaddy 的托管产品,因为我现在正在输入。

说实话,我已经感到困惑了。(抱歉,我保证在接下来的讨论中我会更乐于助人。)为什么 WordPress 托管比 Web 托管计划贵 1 美元? 如果你购买了 5.99 美元的 Web 托管计划,你是否被禁止在它上面安装 WordPress? 还是说它只是方便,如果你选择了 WordPress 托管,它会预先安装和配置? WooCommerce 只是 WordPress 的一个插件,所以在你升级到 WordPress 电子商务托管计划之前,你是否被禁止在 WordPress 托管计划上安装它? (公平地说,WordPress.com 在最高级别计划中也解锁了 WooCommerce,因此这已经成为老生常谈。)为什么 VPS 托管计划是最便宜的? 如果你也像我一样觉得这件事很令人困惑,我不会怪你,尤其是在他们提供的许多不同的托管选项图表中,这仅仅是其中一个图表。
GoDaddy 每年赚取数十亿美元,所以我相信他们已经搞清楚了这些东西,但我要告诉你,经过 20 多年的网络开发经验,我可能会完全凭猜测从这些选项中选择一个计划。 从悲观的角度来看,感觉这种混乱可能是他们的销售策略。
技术
我知道这一点:这些计划是针对 PHP / MySQL 网站的。这意味着 WordPress、Craft、Perch、Ghost、Drupal、Joomla 等。 这是 LAMP 堆栈,它涵盖了所有大型 CMS。 就是这样。 Media Temple、Hostgator、Bluehost 和许多类似的托管服务都是如此。 我认为,用你所说的“传统”网络托管来形容它们,并不算是一种错误的思维方式。
你是否想运行 PostgreSQL 或 MariaDB 而不是 MySQL? 或者你是否想运行 ASP 而不是 PHP? 我敢打赌,所有这些托管服务都对此类问题有一些解决方案。 答案可能类似于“不要使用我们的共享托管产品,请使用我们的原始 VPS(“虚拟专用服务器”)产品,它具有直接的 root 访问权限,你可以自己安装。” 我猜想这也可以,但请务必了解,这些东西并不是它们托管服务的首选。 如果你遇到麻烦,我担心你很难获得良好的支持。
这引出了我的观点:你应该选择托管提供商的顺畅路径产品。
假设我想编写一个 Python 应用程序。 我不会购买 Hostgator 服务器。 我相信你可以让它运行,但这并不是他们真正宣传的东西。 这感觉不像是在一条顺畅的道路上。 而当我查看 Heroku 时,他们将它作为其提供的服务的首选产品。

虽然我本人从未使用过 Heroku,所以无法直接对其进行评价,但我听说过很多好话,而且他们已经做了 15 年了。
顺畅的路径与友好配对有关
Heroku 让我想起了托管提供商中另一个我认为很重要的分界线。 那些“传统”网络托管服务不会伸出一根手指来帮助你将你的网站迁移到他们那里。 他们更像是:这是你的 FTP 凭据,祝你好运。 对于像 Heroku 这样的托管服务,他们会提供一个类似于 heroku container:push
的 CLI,将你的本地代码部署到生产环境。 更好的是,它会直接从你的 GitHub 存储库进行部署。 让我感到困惑的是,为什么世界上所有的网络托管服务都不提供此项帮助。 一个帮助你进行部署的网络托管服务非常有价值。
我们谈论的是顺畅路径,对吧? Heroku 将自己称为“云应用平台”。 顺畅的路径就是那些服务器语言。 Node、Ruby、Python、Go。 如果你不需要任何这些东西怎么办? 假设你正在构建一个静态网站,在核心使用静态网站生成器(例如 Eleventy)(如 Jamstack)。 你会选择 Heroku 吗? 可能不会。 虽然你肯定可以在 Heroku 上实现它,但静态网站托管并不是 Heroku 的核心,因此不算是顺畅的路径。
那么,你应该在哪里托管静态网站? 这就是 Netlify 的全部意义所在。 Netlify 是静态网站的超级顺畅路径。

事实上,Netlify 在 Jamstack 样式托管方面做得非常出色,以至于许多公司都试图提供类似的服务。 我认为 Azure 的 静态 Web 应用程序 就是一个例子。 那么,为什么要使用 Azure 而不是 Netlify? 如果它感觉像一条顺畅路径,而且如果你正在使用其他 Azure 产品,它也可能感觉像一条顺畅路径,假设他们的产品能够很好地协同工作。 Azure 是一个庞大的云平台,提供大量其他产品。 或者你可能只是对 Microsoft 产品有更多经验和开发者肌肉记忆。 我们稍后会谈到这一点。
现在,Jamstack(本质上是指静态托管 + 服务)在很多地方都有提供。 Cloudflare 提供了 Cloudflare Pages,你可能会因为其无限承诺(无限网站、无限请求、无限带宽,甚至无限团队席位)而利用它。

你可能会选择 Cloudflare Pages,因为你的 Cloudflare 产品(例如访问或 Worker)对你来说很重要,而且它感觉像是一条顺畅路径,可以将所有内容整合在一起。
Vercel 提供了 Jamstack 托管,但如果你需要,他们也会为你运行服务器。 他们的流行框架 Next.js 会预先构建页面,但也可以使用 Node 后端提供服务器端渲染页面。 Vercel 为你提供了那个后端。

Vercel 上的 Next.js 是一条非常顺畅路径。 他们说“在为 Next.js 打造的平台上部署”。 很难超越这一点。
AWS Amplify 最终是 Jamstack 托管,而那里的顺畅路径是使用 Amplify 将其他 AWS 服务缝合在一起。 这正是 AWS Amplify 的目的。

需要身份验证? 在幕后,它使用的是 Amazon Cognito,但 Amplify 会帮助你将它整合到你正在做的事情中。 需要存储? S3 是行业标准,Amplify 会帮助你将其集成。 需要数据库? Amplify 会帮助你建模并构建 API。
Firebase 提供了 Jamstack 样式的 托管,而顺畅的路径是依靠 Firebase 框架。

Firebase 具有许多非常有用的功能,例如实时数据存储、身份验证和 RUM 分析。 如果我没有使用任何这些东西,我不确定我会选择 Firebase 托管。 对于一个基本的 Jekyll 博客来说,它可以实现吗? 当然可以。 我个人会这样做吗? 可能不会。 它并没有真正依靠 Firebase 产品,因此顺畅路径的程度要低得多。
值得花点时间谈谈 💪 开发者的“肌肉记忆”。 你会对你经常做的事情形成肌肉记忆。 如果你已经拥有五个在 Netlify 上的网站,而且你已经一遍又一遍地完成了这些步骤,那么你的第六个网站也放在 Netlify 上是有意义的——即使其他一些托管服务可能更适合。 熟悉你的工具并感到舒适非常重要。 你可以比较价格、功能以及所有其他细节,但肌肉记忆是影响选择的最强大因素之一,我认为这完全可以接受。
你的托管服务应该满足你的核心需求
还记得我提到过一个帮助你进行部署的网络托管服务非常有价值吗? 所有这些托管服务都提供此项帮助:Netlify、Vercel、AWS Amplify、Google Firebase、Cloudflare Pages、Azure 静态网站。 这已经成为托管提供商的必备条件。 还有更多必备条件。
现代网站主机必备条件。
除了,你知道,托管网站。
- HTTPS。主机应该为我的网站提供 SSL 证书。最好是自动提供,而且应该是免费的(因为 Let’s Encrypt 是免费的)。
- CDN。主机应该尽可能地从 CDN 提供我的网站内容,即使这需要付费或配置。
- 部署。主机应该连接到 Git 仓库,并将文件从主分支移到生产站点。
- 预发布环境。主机应该提供预发布环境。
我应该回到 WordPress(以及其他 PHP/MySQL CMS)的话题。这就是这个网站所用的。传统的托管服务商服务这个市场。WordPress 占所有网站的 35.2%,这简直太疯狂了,这意味着这个托管市场里有大量的资金流入。但根据我的经验,传统的托管服务商几乎没有提供我刚才提到的那些托管必备条件。很多时候,你需要自己处理 HTTPS。你需要自己集成 CDN。你需要自己部署。预发布环境只是意味着购买另一台服务器。现在托管行业真是乱七八糟,现代网站主机做了很多事情,而传统的网站主机却做得很少。
不过,并非所有专注于 WordPress 的主机都是这样。对于托管 WordPress 网站来说,使用专注于 WordPress 的主机是最佳选择。我现在使用的是 Flywheel,我对他们的服务非常满意。他们提供了所有这些必备条件,甚至更进一步,还帮助进行 本地开发。

你特别问到了 DigitalOcean …
我觉得自己不太适合解释 DigitalOcean,但我认为可以这么说,DigitalOcean 提供了很多最佳选择。他们有一个叫做“Droplet”(它是一台服务器)的概念,它是从“容器”中创建出来的。现在你不用太担心容器的概念,但总而言之,它们是预先配置的服务器,可以运行各种技术组合。如果你想在 Droplet 中启动一个 LAMP 栈,那它就是首选。但其他很多技术也是如此。比如 Strapi,这是一个基于 Node、Nginx 和 PostgreSQL 的 CMS。DigitalOcean 提供了开箱即用的 Droplet,可以满足这些需求。

Droplet 的价格从每月 5 美元起,所以它们与其他主机一样经济实惠,甚至更实惠。你可能会发现一些实际上是 DigitalOcean 提供的托管产品!例如,WordPress 托管工具 SpinupWP 允许你快速创建配置好的 WordPress 托管环境,但它本身不提供托管,你需要“自带”主机,这很有可能就是 DigitalOcean 或 AWS(Amazon Web Services)。
事情会变得越来越复杂。
如果你觉得 DigitalOcean 很复杂,等听到 AWS 你就会觉得更复杂了。我们之前讨论过 AWS Amplify,但那就像 AWS 专为像你我这样的个人开发者设计的,用来快速搭建应用程序。它很酷,但只是 AWS 庞大功能的一小部分。
AWS 是一个庞大的云服务提供商,这意味着,当然,你可以创建 web 服务器,但还有数百种其他服务,比如数据库、存储、无服务器服务、API、日志等等,甚至你可以 租用一台量子计算机,这就像科幻小说里的东西。并不是说普通开发者不能使用 AWS 来托管网站,只是它并没有真正考虑这种 DX。 这本指南关于安装 WordPress 的内容让我感到很头疼。AWS 功能强大,拥有各种解决方案,而且价格极具竞争力。也许可以把 AWS 当成基础的 web 基础设施,它是为大规模运营而设计的。例如,网站主机甚至可能建立在 AWS 之上。
将你的需求与可用的选项匹配
让我们快速浏览一下需求与选项的匹配。这绝不全面。我只是把一些想到的,感觉是最佳选择的方案列了出来。
预算 | 典型 | |
---|---|---|
WordPress | MediaTemple / GoDaddy | Flywheel 或 WP Engine |
其他 PHP + MySQL(例如 Craft CMS) | Bluehost | Cloudways 或 fortrabbit |
Ruby on Rails | Linode | Heroku |
Node.js | 放在 Lambda 中 | DigitalOcean |
Python | Vercel | Heroku |
Go | Vercel | Cloud Run |
Jamstack | GitHub Pages | Netlify 或 Cloudflare Pages |
GraphQL API | Hasura | AWS Amplify / AppSync |
图像存储 | S3 | Cloudinary |
值得再次强调的是,托管有很多共同点。假设你有一个 index.html
文件要托管,它就是你的整个网站;任何网站主机都可以做到这一点。毕竟,它们都是网站主机。它们提供文件服务并运行代码。它们没有那么不同。我们主要讨论的是 DX:它们是否运行我需要运行的东西?它是否简单明了?它们是否帮助简化操作?它们是否明确提供支持?
它是最佳选择吗?
然后是价格
我们还没有真正谈论价格。我知道这是很多人的主要考虑因素,我不想轻视它。但没有了解你的需求就很难谈论价格。我也不希望人们根据每月成本的几美元差价来做出重大的网站托管决策。如果你花半小时来解决原本不需要你解决的故障,那么这些节省的成本就会消失。
我发现网站托管有点像商品市场。价格相当稳定。如果一台主机看起来很贵,那可能是因为它提供了很多服务。如果一台主机看起来很便宜,那可能是因为它在某些方面削减了成本,而你最终会感受到这些成本的。如果你有一个小型的网站,那么你很有可能免费托管它。当网站发展壮大时,托管成本会感觉很低廉而且合理。
🛠 你觉得这一切都很有趣而且令人兴奋吗?如果是这样,你可能想考虑一下从事 DevOps 方面的职业,处理服务器、部署、基础设施和支持开发人员,这不必是其他开发工作的副业,它可以成为一份完整的职业。
祝你找到最适合自己的方案。
列表中缺少:Kinsta.com :-)
我仍然不明白如何在使用 Jamstack 托管的服务(如 GitHub Pages、Netlify 或 Heroku)中使用电子邮件。如果我使用 GoDaddy 或 Hostgator 之类的解决方案,它们会附带电子邮件服务。但我在像 GitHub Pages、Netlify 或 Heroku 这样的服务上还没有找到这样的服务。
这是因为如果你想从自己的邮件服务发送邮件,并希望这些邮件能被其他邮件服务器(如 Gmail)接收,而不是被列入每个人的垃圾邮件过滤器,那么托管邮件服务器将是一件非常困难的事情。你绝对无法在静态主机上运行它。如果你真的想坚持使用静态主机来托管你的网站,但使用你的域名来接收邮件,你必须在其他地方设置一个邮件服务器,并将你的
mail.mysite.com
子域名从你的域名注册商指向该服务器。你可以设置自己的 SMTP 服务器,也可以单独购买电子邮件托管服务。
我喜欢你那种破坏幻想的风格。
Chris,关于不同类型托管提供商之间的差异,您总结得很好。但我认为您至少应该简要提及可靠性和支持。它们很重要。:)
超级重要!但也非常难评估。每个人都对这些事情有轶事答案,但涉及的变量太多,无法真正了解。
我最喜欢的组合是 DigitalOcean 和 serverpilot.io
比 WPengine/Flywheel 快
包含 SSL
防火墙/安全更新
很棒的文章,信息量很大。我个人喜欢 github 的 jekyll 用于博客,以及 firebase 用于 OAuth
我目前正在寻找 Dreamhost VPS 的替代方案,因此这篇文章非常及时。感谢您一如既往的支持,Chris!
我主要使用 WordPress,以及一些 PHP API 操作。还有一些使用 Hugo 的静态网站。
对我来说一个关键变量是可持续性,即“这些服务器是否对世界造成了可怕的影响,或者它们是否针对节能进行了优化,并且由绿色可再生能源供电?”
我打算试试 kualo.com。
再见!
我刚在 https://fredrocha.net 部署了一个可用的网站版本,使用的是 Kualo.com。令我印象深刻的是,我什么都不需要做,SSL 证书就开始工作了。缓存系统(LiteSpeed 缓存)非常出色,我的网站现在速度飞快。
此外,他们的 cPanel 功能非常丰富。推荐!
作为一名在企业级公司担任高级 DevOps 工程师相当长一段时间的人,我可以说这是一篇非常好的分解。除非您真的想深入了解部署,否则“幸福之路”是最好的选择。
最终,专注于您喜欢的部分,让那些喜欢其他部分的人享受他们的乐趣。总有大量工作需要完成,当您真正深入了解细节时,这会比大多数人意识到的要复杂得多。
想要支持每个人的代码?从头开始,控制一切。只是要意识到,这种工作量和持续学习在最好的情况下也会让人望而生畏。
我使用 Dreamhost 来托管我的静态作品集。它是 Jamstacked,每月 3.00 美元。我也有自己的域名。我目前是技术学院的代码新手 http://www.lauraristoff.com
最重要的是,不要购买任何廉价的托管。如果你想省钱,并打算为你的网站购买廉价的托管,那么你会输掉并损害你的博客事业。
感谢您提供精彩的内容和有用的想法
非常感谢您写了一整篇文章来回答我的问题。外面的世界非常令人困惑,而且很多时候让人不知所措。这篇文章读起来很棒。非常感谢
很棒的文章,真是大开眼界。从此以后,我有了参考,可以根据我选择构建应用程序的堆栈来找到最好的托管。感谢您,Chris!❤️
我喜欢您“幸福之路”的方法——它清晰地解释了如何为项目的需要选择最佳托管。
关于基本要求:您提到传统 WP 托管不涵盖这些参数,但 WP 托管的新方式,即更少传统的静态 WordPress,确实涵盖了这些基础。例如,在 Strattic 的情况下,我们为用户配置了以下开箱即用的功能
HTTPS。是的,所有 Strattic 网站都开箱即用——包括暂存和静态网站(请参阅以下关于暂存内容)
CDN。整个静态 WordPress 网站通过 CDN 提供服务。
部署。我们的客户使用 Git 与 DeployHQ 等第三方工具。
暂存。Strattic 客户获得一个作为事实来源的 WP 网站,如有必要,可以获得更多暂存 WP 网站,以及一个暂存静态网站!
感谢您发布这篇文章,Chris!我听说您在 Shop Talk Show 上发布了它,所以我很高兴找到了它。我的问题是:我至少有一半的网站基本上只是 html/CSS 页面,有时还包含 PHP,但我还运行一个 WordPress 博客,并且还有更多 WP/Craft 项目。我应该优先选择可以运行我的 WP 网站的托管(比如 Digital Ocean)吗?我这样选择的话,也可以显示我的那些小小的 HTML 页面吗?如果没有,我应该如何选择?谢谢!
有时把所有东西都放在一个主机上会很不错,但对于“小小的 HTML 页面”,我觉得你不会后悔把它们放在 Netlify 上。开发者体验超级好,它可能只与你的 Git 仓库连接,所以与你已经做的事情几乎没有什么区别,而且“小小的”部分意味着它可能是免费的。
非常全面且有用,谢谢,这是我在使用 CSS-Tricks 这么多年后第一次评论:)