启用或禁用维护模式

以下指南参考了标准维护模式页面。 如果需要使用自定义维护页面,请参阅创建自定义维护页面主题。

Adobe Commerce使用维护模式禁用引导。 在维护、升级或重新配置站点时,禁用引导很有用。

应用程序检测维护模式,如下所示:

  • 如果存在var/.maintenance.flag,则维护模式为开启,应用程序将返回503维护页面。
  • 如果存在var/.maintenance.ip,并且客户端IP对应于此文件中的某个IP地址条目,则忽略请求的维护页面。

安装应用程序

使用此命令启用或禁用维护模式之前,必须安装应用程序

启用或禁用维护模式

使用magento maintenance CLI命令启用或禁用维护模式。

命令用法:

bin/magento maintenance:enable [--ip=<ip address> ... --ip=<ip address>] | [ip=none]
bin/magento maintenance:disable [--ip=<ip address> ... --ip=<ip address>] | [ip=none]
bin/magento maintenance:status

--ip=<ip address>选项是免除维护模式的IP地址(例如,执行维护的开发人员)。 要在同一命令中免除多个IP地址,请多次使用选项。

NOTE
--ip=<ip address>magento maintenance:disable一起使用可保存IP列表以供将来使用。 要清除免除IP列表,请使用magento maintenance:enable --ip=none或参阅维护免除IP地址列表

bin/magento maintenance:status命令显示维护模式的状态。

例如,启用没有IP地址劐免的维护模式:

bin/magento maintenance:enable

要为除192.0.2.10和192.0.2.11之外的所有客户端启用维护模式,请执行以下操作:

bin/magento maintenance:enable --ip=192.0.2.10 --ip=192.0.2.11

将应用程序置于维护模式后,必须停止所有消息队列使用者进程。
查找这些进程的一种方法是运行ps -ef | grep queue:consumers:start命令,然后为每个使用者运行kill <process_id>命令。 在多节点环境中,对每个节点重复此任务。

维护免除IP地址列表

要维护免除IP地址列表,您可以使用上述命令中的[--ip=<ip list>]选项,也可以使用以下命令:

bin/magento maintenance:allow-ips <ip address> .. <ip address> [--none]

<ip address> .. <ip address>语法是要免除的IP地址的可选空格分隔列表。

--none选项清除列表。

多存储设置

如果要设置多个商店,每个商店具有不同的布局和本地化内容,请将$_GET['skin']参数传递给目标处理器。

在以下示例中,我们使用的是503类型错误模板文件,该文件需要本地化的内容。

Error_Processor类的构造函数接受一个skinGET参数以更改布局:

if (isset($_GET['skin'])) {
    $this->_setSkin($_GET['skin']);
}

这还可以添加到.htaccess文件中的重写规则,该规则会将skin参数附加到URL。

$_GET['skin']参数

要使用skin参数,请执行以下操作:

  1. 检查.maintenance.flag是否存在。

  2. 请注意引用HTTP_HOST的主机地址或任何其他变量(如ENV变量)。

  3. 检查skin参数是否存在。

  4. 使用以下重写规则设置参数。

    以下是重写规则的一些示例:

    • RewriteCond %{DOCUMENT_ROOT}/var/.maintenance.flag -f
    • RewriteCond %{HTTP_HOST} ^sub.example.com$
    • RewriteCond %{QUERY_STRING} !(^|&)skin=sub(&|$) [NC]
    • 重写规则^ %{REQUEST_URI}?skin=sub [L]
  5. 复制以下文件:

    • pub/errors/default/503.phtmlpub/errors/sub/503.phtml
    • pub/errors/default/css/styles.csspub/errors/sub/styles.css
  6. 编辑这些文件以在503.phtml文件中提供本地化内容并在styles.css文件中提供自定义样式。

    确保您的路径指向errors目录。 目录名称必须与RewriteRule中指示的URL参数匹配。 在上一个示例中,使用了sub目录,该目录被指定为RewriteRule (skin=sub)中的参数

NOTE
必须为多存储设置添加nginx设置。
recommendation-more-help
0f8e7db5-0e9c-4002-a5b8-a0088077d995