Configuración de varios sitios web con Nginx

Suponemos que:

  • Está trabajando en una máquina de desarrollo (portátil, máquina virtual o similar).

    Es posible que se requieran tareas adicionales para implementar varios sitios web en un entorno alojado; póngase en contacto con su proveedor de alojamiento para obtener más información.

    Se requieren tareas adicionales para configurar Adobe Commerce en la infraestructura en la nube. Después de completar las tareas descritas en este tema, consulte Configurar varios sitios web o tiendas en el Guía de Commerce en infraestructura en la nube.

  • Acepte varios dominios en un archivo host virtual o utilice un host virtual por sitio web; los archivos de configuración de host virtual se encuentran en /etc/nginx/sites-available.

  • Utilice el nginx.conf.sample proporcionado por Commerce solo con las modificaciones descritas en este tutorial.

  • El software Commerce se instala en /var/www/html/magento2.

  • Tiene dos sitios web distintos del predeterminado:

    • french.mysite.mg con código de sitio web french y código de vista de tienda fr
    • german.mysite.mg con código de sitio web german y código de vista de tienda de
    • mysite.mg es el sitio web predeterminado y la vista de tienda predeterminada
TIP
Consulte Creación de sitios web y Crear vistas de tienda para obtener ayuda sobre cómo localizar estos valores.

A continuación se muestra una hoja de ruta para configurar varios sitios web con nginx:

  1. Configuración de sitios web, tiendas y vistas de tiendas en el Administrador.

  2. Crear un Host virtual Nginx) para asignar muchos sitios web o un host virtual Nginx por sitio web de Commerce (los pasos se detallan a continuación).

  3. Pasar los valores del Variables MAGE $MAGE_RUN_TYPE y $MAGE_RUN_CODE a nginx utilizando el Magento proporcionado nginx.conf.sample (pasos detallados a continuación).

    • $MAGE_RUN_TYPE puede ser store o website:

      • Uso website para cargar el sitio web en la tienda.
      • Uso store para cargar cualquier vista de tienda en tu tienda.
    • $MAGE_RUN_CODE es el sitio web único o el código de vista de tienda que corresponde a $MAGE_RUN_TYPE.

  4. Actualice la configuración de la URL base en el administrador de Commerce.

Paso 1: crear sitios web, tiendas y vistas de tiendas en el administrador

Consulte Configure varios sitios web, tiendas y vistas de tiendas en el Administrador de.

Paso 2: Crear hosts virtuales nginx

Este paso explica cómo cargar sitios web en la tienda. Puede utilizar sitios web o vistas de tiendas; si utiliza las vistas de tiendas, debe ajustar los valores de los parámetros en consecuencia. Debe completar las tareas de esta sección como usuario con sudo privilegios.

Utilizando solo una archivo host virtual nginx, puede mantener la configuración de nginx simple y limpia. Con varios archivos host virtuales, puede personalizar cada almacén (para utilizar una ubicación personalizada para french.mysite.mg por ejemplo).

Para crear un host virtual (simplificado):

Esta configuración se amplía configuración de nginx.

  1. Abra un editor de texto y agregue el siguiente contenido a un nuevo archivo denominado /etc/nginx/sites-available/magento:

    code language-conf
    map $http_host $MAGE_RUN_CODE {
        default '';
        french.mysite.mg french;
        german.mysite.mg german;
    }
    
    server {
        listen 80;
        server_name mysite.mg french.mysite.mg german.mysite.mg;
        set $MAGE_ROOT /var/www/html/magento2;
        set $MAGE_MODE developer;
        set $MAGE_RUN_TYPE website; #or set $MAGE_RUN_TYPE store;
        include /var/www/html/magento2/nginx.conf;
    }
    
  2. Guarde los cambios en los archivos y salga del editor de texto.

  3. Compruebe la configuración del servidor:

    code language-bash
    nginx -t
    
  4. Si se ejecuta correctamente, aparece el siguiente mensaje:

    code language-terminal
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    

    Si se muestran errores, compruebe la sintaxis de los archivos de configuración del host virtual.

  5. Cree un vínculo simbólico en /etc/nginx/sites-enabled directorio:

    code language-bash
    cd /etc/nginx/sites-enabled
    
    code language-bash
    ln -s /etc/nginx/sites-available/magento magento
    

Para obtener más información sobre la directiva de mapa, consulte documentación de nginx sobre la directiva de mapa.

Para crear varios hosts virtuales:

  1. Abra un editor de texto y agregue el siguiente contenido a un nuevo archivo denominado /etc/nginx/sites-available/french.mysite.mg:

    code language-conf
    server {
        listen 80;
        server_name french.mysite.mg;
        set $MAGE_ROOT /var/www/html/magento2;
        set $MAGE_MODE developer;
        set $MAGE_RUN_TYPE website; #or set $MAGE_RUN_TYPE store;
        set $MAGE_RUN_CODE french;
        include /var/www/html/magento2/nginx.conf;
    }
    
  2. Cree otro archivo llamado german.mysite.mg en el mismo directorio con el siguiente contenido:

    code language-conf
    server {
        listen 80;
        server_name german.mysite.mg;
        set $MAGE_ROOT /var/www/html/magento2;
        set $MAGE_MODE developer;
        set $MAGE_RUN_TYPE website; #or set $MAGE_RUN_TYPE store;
        set $MAGE_RUN_CODE german;
        include /var/www/html/magento2/nginx.conf;
    }
    
  3. Guarde los cambios en los archivos y salga del editor de texto.

  4. Compruebe la configuración del servidor:

    code language-bash
    nginx -t
    
  5. Si se ejecuta correctamente, aparece el siguiente mensaje:

    code language-terminal
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    

    Si se muestran errores, compruebe la sintaxis de los archivos de configuración del host virtual.

  6. Creación de vínculos simbólicos en /etc/nginx/sites-enabled directorio:

    code language-bash
    cd /etc/nginx/sites-enabled
    
    code language-bash
    ln -s /etc/nginx/sites-available/french.mysite.mg french.mysite.mg
    
    code language-bash
    ln -s /etc/nginx/sites-available/german.mysite.mg german.mysite.mg
    

Paso 3: Modificar nginx.conf.sample

TIP
No edite el nginx.conf.sample es un archivo principal de Commerce que se puede actualizar con cada nueva versión. En su lugar, copie el nginx.conf.sample archivo, cambie su nombre y, a continuación, edite el archivo copiado.

Para editar el punto de entrada de PHP para la aplicación principal:

Para modificar nginx.conf.sample archivo**:

  1. Abra un editor de texto y revise la nginx.conf.sample archivo ,<magento2_installation_directory>/nginx.conf.sample. Busque la siguiente sección:

    code language-conf
    # PHP entry point for main application
    location ~ (index|get|static|report|404|503|health_check)\.php$ {
        try_files $uri =404;
        fastcgi_pass   fastcgi_backend;
        fastcgi_buffers 1024 4k;
    
        fastcgi_param  PHP_FLAG  "session.auto_start=off \n suhosin.session.cryptua=off";
        fastcgi_param  PHP_VALUE "memory_limit=1G \n max_execution_time=18000";
        fastcgi_read_timeout 600s;
        fastcgi_connect_timeout 600s;
    
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
    
  2. Actualice el nginx.conf.sample con las dos líneas siguientes antes de la instrucción include:

    code language-conf
    fastcgi_param MAGE_RUN_TYPE $MAGE_RUN_TYPE;
    fastcgi_param MAGE_RUN_CODE $MAGE_RUN_CODE;
    

Un punto de entrada de PHP actualizado de ejemplo para la aplicación principal tiene este aspecto:

# PHP entry point for main application

location ~ (index|get|static|report|404|503|health_check)\.php$ {
    try_files $uri =404;
    fastcgi_pass   fastcgi_backend;
    fastcgi_buffers 1024 4k;

    fastcgi_param  PHP_FLAG  "session.auto_start=off \n suhosin.session.cryptua=off";
    fastcgi_param  PHP_VALUE "memory_limit=1G \n max_execution_time=18000";
    fastcgi_read_timeout 600s;
    fastcgi_connect_timeout 600s;

    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    # START - Multisite customization
    fastcgi_param MAGE_RUN_TYPE $MAGE_RUN_TYPE;
    fastcgi_param MAGE_RUN_CODE $MAGE_RUN_CODE;
    # END - Multisite customization
    include        fastcgi_params;
}

Paso 4: Actualizar la configuración de la URL base

Debe actualizar la dirección URL base del french y el german sitios web en el administrador de Commerce.

Actualizar URL base del sitio web francés

  1. Inicie sesión en el administrador de Commerce y navegue hasta Tiendas > Configuración > Configuración > General > Web.
  2. Cambie el ámbito de configuración a la french sitio web.
  3. Expandir Direcciones URL base y actualice la sección URL básica y URL de vínculo base valor hasta http://french.magento24.com/.
  4. Expandir URL básicas (seguras) y actualice la sección URL base segura y URL de vínculo base seguro valor hasta https://french.magento24.com/.
  5. Clic Guardar configuración y guarde los cambios de configuración.

Actualizar URL base del sitio web en alemán

  1. Inicie sesión en el administrador de Commerce y navegue hasta Tiendas > Configuración > Configuración > General > Web.
  2. Cambie el ámbito de configuración a la german sitio web.
  3. Expandir Direcciones URL base y actualice la sección URL básica y URL de vínculo base valor hasta http://german.magento24.com/.
  4. Expandir URL básicas (seguras) y actualice la sección URL base segura y URL de vínculo base seguro valor hasta https://german.magento24.com/.
  5. Clic Guardar configuración y guarde los cambios de configuración.

Limpiar la caché

Ejecute el siguiente comando para limpiar config y full_page cachés.

bin/magento cache:clean config full_page

Verifique su sitio

A menos que tenga DNS configurado para las direcciones URL de sus tiendas, debe agregar una ruta estática al host en su hosts archivo:

  1. Localice su sistema operativo hosts archivo.

  2. Añada la ruta estática con el formato:

    code language-conf
    <ip-address> french.mysite.mg
    <ip-address> german.mysite.mg
    
  3. Vaya a una de las siguientes direcciones URL en el explorador:

    code language-http
    http://mysite.mg/admin
    http://french.mysite.mg/frenchstoreview
    http://german.mysite.mg/germanstoreview
    
INFO
  • Es posible que se requieran tareas adicionales para implementar varios sitios web en un entorno alojado; póngase en contacto con su proveedor de alojamiento para obtener más información.
  • Se requieren tareas adicionales para configurar Adobe Commerce en la infraestructura en la nube; consulte Configurar varios sitios web o tiendas en la nube en el Guía de Commerce en infraestructura en la nube.

Resolución de problemas

  • Si sus sitios en francés y alemán devuelven 404 pero su administrador carga, asegúrese de completar Paso 6: Añadir el código de tienda a la URL base.
  • Si todas las direcciones URL devuelven 404, asegúrese de reiniciar el servidor web.
  • Si el administrador no funciona correctamente, asegúrese de configurar correctamente los hosts virtuales.
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c