系统学习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 作业在维护模式下工作,如果需要,应停止。