当前位置: 技术文章>> 在Magento/Adobe Commerce中启用维护模式的4种方法

文章标题:在Magento/Adobe Commerce中启用维护模式的4种方法
  • 文章分类: Magento
  • 16027 阅读
系统学习magento二次开发,推荐小册:《Magento中文全栈二次开发 》

本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。


在我们的“关闭Magento商店进行维护”博客文章中,我们描述了如何关闭商店进行维护以及我们对Magento 1中的维护模式有哪些限制。幸运的是,反之亦然,时间过得很快,事情也在变化。Magento应用程序也会发生变化,并更加敏捷地满足业务需求。

今天我们已经有了Magento 2,并想讨论Magento开源和Adobe Commerce为网站所有者(商家)提供的有关维护模式功能的机会。此外,我们将概述它们的优缺点以及每种解决方案的适用案例。所以,让我们开始吧。

Magento的维护模式是什么?

首先,让我们澄清维护模式的经典定义。维护模式是Magento应用程序中的一种特殊模式,当软件暂时脱机进行维护时使用。就电子商务平台而言,通知客户和搜索引擎爬虫网站将尽快可用是一个重要的通知。

Magento维护模式如何工作?

在Magento中,维护模式执行以下操作:

阻止访客在店面上的活动。访问者将看到一个“服务不可用”页面,并且无法浏览网站页面。

停止Magento由CRON运行的系统进程。

返回 503 服务器错误响应代码 - 换句话说,您的网站当前已关闭。搜索引擎读取有关停机时间的503响应,并且不会更改现有网站SEO。

听起来很有趣?让我们继续。

在Magento中启用维护模式的4种方法?

1.通过Magento 2电子商务平台中提供的本机工具

请记住,这是启用维护模式的最常用方法,需要满足以下条件:

安装Magento 2电子商务平台

Magento 2应该在“生产”模式下运行。

启用维护模式过程包括以下步骤:

允许从特定 IP 地址访问网站:

bin/magento maintenance:allow-ips <IP 地址> .. <IP 地址> [--无]

启用维护模式

bin/magento 维护:启用

停止Magento cron。更新 app/etc/env.php 并添加以下行以停止 cron 作业:

'cron' =>array (

    “enable” => 0

),

停止Magento Crons以在Magento上启用维护模式

通过运行以下命令刷新配置缓存:

bin/magento cache:clean config

使用以下命令解锁和终止任何现有的 cron 任务(仅适用于 Adobe Commerce):

PHP vendor/bin/ece-tools cron:kill

PHP vendor/bin/ece-tools cron:unlock

要禁用维护模式,您需要:

通过app/etc/env.php中的更改启用Magento CRONs:

'cron' =>数组 (

    “已启用” => 1

),

刷新配置缓存

bin/magento cache:clean config

禁用维护模式

bin/magento 维护:禁用

通过Magento 2框架使用维护的功能:

应安装Magento 2电子商务平台;

Magento 2以“生产”模式运行;

在 <Magento_root_folder>/var/.maintenance.ip 中定义的以逗号分隔的 IP 地址白名单;

创建<Magento_root_folder>/var/.maintenance.flag(表示Magento处于维护模式);

bin/magento maintenance:enable CLI 命令不会影响 Magento CRON 作业,因此应另外停止它们。

在多商店Magento 2设置的情况下,我们可能会为不同的网站/商店使用皮肤。

但是,还有其他工具也可以帮助商家为网站启用维护模式:

内容分发网络 (CDN)

网页服务器

Magento 2网站限制功能(仅适用于Adobe Commerce))

2. 通过 CDN

每个流行的 CDN 都包含一个访问限制功能,可以阻止访问者和搜索引擎爬虫访问一个或多个网站(在多商店的情况下)。尽管如此,该软件不会通过bin/magento维护:启用CLI命令切换到维护模式。

当您需要测试某些网站功能但不想允许所有潜在访问者访问它时,可以使用 CDN 阻止。

通过CDN在Magento上启用维护模式

若要通过 CDN 启用维护模式,请使用以下后续步骤:

将 IP 地址添加到不会被阻止的用户。

指定 503 页面的内容。

在 CDN 中启用维护模式。

对于使用托管在云上的 Adobe Commerce 的商家,我们建议使用以下分步指南在 Fastly CDN 中启用维护模式,这是 Adobe 云基础架构的一部分:

登录到Magento管理员并转到商店>设置>配置>高级>系统>整页缓存>快速配置

添加可以访问网站的访问者的 IP 地址。

添加可以访问网站的访问者的 IP 地址 2

添加可以访问网站的访问者的 IP 地址

指定 503 页的内容

指定 503 页的内容

如果您有 <Magento_root_folder>/var/.maintenance.ip 文件,您可以使用以下命令来节省时间并将所有 IP 地址添加到 Fastly:

bin/magento fastly:maintenance -u

启用维护模式

通过CDN启用维护模式Magento

或者您可以使用下一个 CLI 命令:

bin/magento fastly:maintenance -e

要在Fastly中禁用维护模式,您可以单击Magento管理员中的“启用/禁用”按钮或运行以下CLI命令:

bin/magento fastly:maintenance -d

通过 CDN 启用维护模式的缺点是,您不能为“503 服务不可用”页面使用不同的内容(皮肤),因为 CDN 允许在多商店设置的情况下为所有网站指定单个页面内容。

通过 CDN 使用维护的功能:

快速返回 503 标头代码。

Magento本身不处于维护模式。

商家无法设置/使用特定网站的单独维护页面/消息(在多商店的情况下)

var/.maintenance.ip 可用于填充 Fastly “maint_allowlist”

var/.maintenance.flag没有被创建(所以从技术上讲,Magento不处于维护模式)

3. 通过网络服务器

这种方法与CDN访问限制非常相似,适用于未安装Magento应用程序或我们需要限制对特定网站的访问的情况;这是这种方法的主要好处 - 在Magento配置为多商店的情况下,商家可能会限制对特定网站的访问(请参阅下面的架构)。

通过网络服务器启用Magento维护模式

关于架构,商家可能会阻止访问“网站1”,但所有用户都可以访问“网站2”和“网站N”。

此外,建议Adobe在Magento应用程序升级期间使用此方法。

此解决方案的缺点 – 商家需要让托管服务提供商参与以正确配置 Web 服务器。

通过 Web 服务器使用维护的功能:

体验Adobe文档建议在Magento升级期间通过Web服务器启用维护模式。

可以为所有网站或特定网站启用维护模式。

Magento本身可以切换到维护模式,也可以不切换到维护模式。

可以将单独的维护页面设置为特定网站(在多商店的情况下)。

允许的 IP 和维护模式标志在 Web 服务器配置中设置。

4. 通过Magento 2网站限制

如上所述,这是Adobe Commerce的独家功能 - “私人销售和活动”。

当商家想要对特定网站进行一些更新并暂时为访问者关闭它时,可以使用此方法。例如,一个目录包含数千种产品,商家需要立即更新产品价格,同时防止客户购买价格过时的产品。

通过“私人销售和活动”启用维护模式需要执行以下步骤:

登录到Magento管理员并转到商店>设置>配置>常规>常规>网站限制

将“访问限制”选项设置为“是”。

将“限制模式”选项设置为“网站已关闭”。

在“着陆页”下拉列表中选择包含“服务不可用”页面内容的所需CMS页面。

将“HTTP 响应”选项设置为“503 服务不可用”。

将 HTTP 响应选项设置为 503 服务不可用

通过“网站限制”功能使用维护的功能:

The Magento application is installed and is not in maintenance mode.

CMS页面可以设置为特定网站的维护页面(在多商店的情况下)。

不需要商家的技术技能。

维护模式皮肤

开箱即用的Magento 2提供了可用于“503服务不可用”页面的皮肤。

从技术上讲,皮肤 - 是pub/errors/文件夹中的文件夹,其中包含CSS,媒体和phtml模板,用于不同类型的错误(503,404等)。皮肤可以通过$GET['skin']变量传递给Magento应用程序。

皮肤要求:

皮肤的名称应遵循 /^[a-z0-9_]+$/i 模式。

具有皮肤名称的文件夹应存在于<Magento_root>/pub/errors/文件夹中。

最佳Magento实践皮肤名称:

pub/errors/{name},其中 {name} 是存储代码。

要区分具有相同实例的商店和网站,请使用 pub/errors/{type}–{name}。其中 {type} 是商店或网站,与服务器配置中的MAGE_RUN_TYPE匹配。

最佳实践示例:

发布/错误/商店1

发布/错误/商店2

发布/错误/网站商店1

发布/错误/网站商店2

皮肤文件夹结构:

维护模式外观文件夹结构

默认皮肤可以在<Magento_root>/pub/errors/design.xml或<Magento_root>/pub/errors/local.xml中设置:

<?xml 版本=“1.0”?>

<!--

/**

* 版权所有 © Magento, Inc.保留所有权利。

* 有关许可证详细信息,请参阅复制.txt。

*/

-->

<配置>

   <皮肤>默认</皮肤>

</配置>

Magento应用程序使用以下算法来检测正确的皮肤:

Magento应用程序使用以下算法来检测适当的皮肤

结语

维护模式不会破坏 SEO。

概述了商家启用或模拟维护模式的最流行方式。这些方法中的每一种都有自己的优点/缺点。

另外,请记住,Magento CRON 作业在维护模式下工作,如果需要,应停止。


推荐文章