Habilitar o deshabilitar el modo de mantenimiento

La siguiente guía hace referencia a una página de modo de mantenimiento estándar. Si necesita usar una página de mantenimiento personalizada, consulte Crear la página de mantenimiento personalizada.

Adobe Commerce usa modo de mantenimiento para deshabilitar el arranque. Deshabilitar el arranque resulta útil mientras mantiene, actualiza o vuelve a configurar el sitio.

La aplicación detecta el modo de mantenimiento de la siguiente manera:

  • Si var/.maintenance.flag no existe, el modo de mantenimiento está desactivado y la aplicación funciona normalmente.

  • De lo contrario, el modo de mantenimiento está activado a menos que exista var/.maintenance.ip.

    var/.maintenance.ip puede contener una lista de direcciones IP. Si se accede a un punto de entrada mediante HTTP y la dirección IP del cliente corresponde a una de las entradas de esa lista, el modo de mantenimiento está desactivado.

Instalación de la aplicación

Antes de usar este comando para habilitar o deshabilitar el modo de mantenimiento, debe instalar la aplicación.

Habilitar o deshabilitar el modo de mantenimiento

Utilice el comando CLI magento maintenance para habilitar o deshabilitar el modo de mantenimiento.

Uso de comandos:

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

La opción --ip=<ip address> es una dirección IP que se excluirá del modo de mantenimiento (por ejemplo, los desarrolladores que realizan el mantenimiento). Para eximir más de una dirección IP en el mismo comando, utilice la opción varias veces.

NOTE
Al usar --ip=<ip address> con magento maintenance:disable se guarda la lista de direcciones IP para su uso posterior. Para borrar la lista de direcciones IP exentas, use magento maintenance:enable --ip=none o consulte Mantener la lista de direcciones IP exentas.

El comando bin/magento maintenance:status muestra el estado del modo de mantenimiento.

Por ejemplo, para habilitar el modo de mantenimiento sin excepciones de dirección IP:

bin/magento maintenance:enable

Para habilitar el modo de mantenimiento para todos los clientes excepto 192.0.2.10 y 192.0.2.11:

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

Después de colocar la aplicación en modo de mantenimiento, debe detener todos los procesos del consumidor de la cola de mensajes.
Una forma de encontrar estos procesos es ejecutar el comando ps -ef | grep queue:consumers:start y, a continuación, ejecutar el comando kill <process_id> para cada consumidor. En un entorno de varios nodos, repita esta tarea en cada nodo.

Mantener la lista de direcciones IP exentas

Para mantener la lista de direcciones IP exentas, puede utilizar la opción [--ip=<ip list>] en los comandos anteriores o puede utilizar lo siguiente:

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

La sintaxis <ip address> .. <ip address> es una lista opcional delimitada por espacios de direcciones IP que se deben eximir.

La opción --none borra la lista.

Configuraciones de varias tiendas

Si desea configurar varias tiendas, cada una con un diseño y contenido localizados diferentes, pase el parámetro $_GET['skin'] al procesador deseado.

En el ejemplo siguiente, se usa un archivo de plantilla de error de tipo 503, que requiere contenido localizado.

El constructor de la clase Error_Processor acepta un parámetro de GET skin para cambiar el diseño:

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

Esto también se puede agregar a una regla de reescritura en el archivo .htaccess que anexa un parámetro skin a la dirección URL.

Parámetro $_GET['skin']

Para usar el parámetro skin:

  1. Compruebe si .maintenance.flag existe.

  2. Observe la dirección de host, que hace referencia a HTTP_HOST, o cualquier otra variable como las variables ENV.

  3. Compruebe si el parámetro skin existe.

  4. Defina el parámetro utilizando las reglas de reescritura a continuación.

    Estos son algunos ejemplos de reglas de reescritura:

    • RewriteCond %{DOCUMENT_ROOT}/var/.maintenance.flag -f
    • RewriteCond %{HTTP_HOST} ^sub.example.com$
    • RewriteCond %{QUERY_STRING} !(^|&)skin=sub(&|$) [NC]
    • RewriteRule ^ %{REQUEST_URI}?skin=sub [L]
  5. Copie los siguientes archivos:

    • pub/errors/default/503.phtml a pub/errors/sub/503.phtml
    • pub/errors/default/css/styles.css a pub/errors/sub/styles.css
  6. Edite estos archivos para proporcionar contenido localizado en el archivo 503.phtml y estilo personalizado en el archivo styles.css.

    Asegúrese de que las rutas apunten al directorio errors. El nombre de directorio debe coincidir con el parámetro de URL indicado en RewriteRule. En el ejemplo anterior, se usa el directorio sub, que se especifica como parámetro en RewriteRule (skin=sub)

NOTE
Se debe agregar la configuración nginx para las configuraciones de varias tiendas.
recommendation-more-help
0f8e7db5-0e9c-4002-a5b8-a0088077d995