Configurare più siti Web con Nginx

Si presuppone che:

  • Stai lavorando su una macchina di sviluppo (laptop, macchina virtuale o simile).

    Potrebbero essere necessarie attività aggiuntive per distribuire più siti web in un ambiente ospitato; per ulteriori informazioni, rivolgiti al provider di hosting.

    Sono necessarie attività aggiuntive per configurare l’infrastruttura cloud di Adobe Commerce. Dopo aver completato le attività descritte in questo argomento, vedere Configurare più siti Web o store nella guida di Commerce sull'infrastruttura cloud.

  • Accettare più domini in un file host virtuale o utilizzare un host virtuale per sito Web. I file di configurazione host virtuale si trovano in /etc/nginx/sites-available.

  • Utilizza nginx.conf.sample fornito da Commerce con le sole modifiche descritte in questa esercitazione.

  • Software Commerce installato in /var/www/html/magento2.

  • Sono disponibili due siti Web diversi da quello predefinito:

    • french.mysite.mg con codice sito Web french e codice visualizzazione archivio fr
    • german.mysite.mg con codice sito Web german e codice visualizzazione archivio de
    • mysite.mg è il sito Web predefinito e la visualizzazione predefinita dello store
TIP
Per informazioni su come individuare questi valori, consultare Crea siti Web e Crea visualizzazioni archivio.

Di seguito è riportata una roadmap per la configurazione di più siti Web con nginx:

  1. Configura siti Web, archivi e visualizzazioni dello store nell'amministratore.

  2. Creare un host virtuale Nginx) per mappare molti siti Web o un host virtuale Nginx per sito Web Commerce (passaggi descritti di seguito).

  3. Passa i valori delle variabili MAGE $MAGE_RUN_TYPE e $MAGE_RUN_CODE a nginx utilizzando nginx.conf.sample fornito dal Magento (passaggi descritti di seguito).

    • $MAGE_RUN_TYPE può essere store o website:

      • Utilizza website per caricare il tuo sito Web nella vetrina.
      • Utilizza store per caricare qualsiasi visualizzazione dello store nella tua vetrina.
    • $MAGE_RUN_CODE è il codice univoco di visualizzazione del sito Web o dello store che corrisponde a $MAGE_RUN_TYPE.

  4. Aggiorna la configurazione dell’URL di base nell’amministratore di Commerce.

Passaggio 1: creare siti web, store e visualizzazioni dello store in Admin

Vedere Configurare più siti Web, store e visualizzazioni dello store in Admin.

Passaggio 2: creare host virtuali di base

Questo passaggio illustra come caricare i siti web sulla vetrina. È possibile utilizzare siti Web o visualizzazioni archivio; se si utilizzano le visualizzazioni archivio, è necessario modificare di conseguenza i valori dei parametri. È necessario completare le attività in questa sezione come utente con privilegi sudo.

Utilizzando un solo file host virtuale nginx, puoi mantenere la configurazione nginx semplice e pulita. Utilizzando diversi file host virtuali, è possibile personalizzare ogni archivio, ad esempio per utilizzare un percorso personalizzato per french.mysite.mg.

Per creare un host virtuale (semplificato):

Questa configurazione si espande dopo configurazione nginx.

  1. Aprire un editor di testo e aggiungere il contenuto seguente a un nuovo file denominato /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. Salvare le modifiche apportate ai file e uscire dall'editor di testo.

  3. Verifica la configurazione del server:

    code language-bash
    nginx -t
    
  4. In caso di esito positivo, viene visualizzato il seguente messaggio:

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

    Se vengono visualizzati degli errori, controllare la sintassi dei file di configurazione dell'host virtuale.

  5. Creare un collegamento simbolico nella directory /etc/nginx/sites-enabled:

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

Per ulteriori dettagli sulla direttiva mappa, consulta la documentazione nginx sulla direttiva mappa.

Per creare più host virtuali:

  1. Aprire un editor di testo e aggiungere il contenuto seguente a un nuovo file denominato /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. Creare un altro file denominato german.mysite.mg nella stessa directory con il contenuto seguente:

    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. Salvare le modifiche apportate ai file e uscire dall'editor di testo.

  4. Verifica la configurazione del server:

    code language-bash
    nginx -t
    
  5. In caso di esito positivo, viene visualizzato il seguente messaggio:

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

    Se vengono visualizzati degli errori, controllare la sintassi dei file di configurazione dell'host virtuale.

  6. Creare collegamenti simbolici nella directory /etc/nginx/sites-enabled:

    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
    

Passaggio 3: modificare nginx.conf.sample

TIP
Non modificare il file nginx.conf.sample; si tratta di un file Commerce di base che può essere aggiornato a ogni nuova versione. Copiare il file nginx.conf.sample, rinominarlo e quindi modificare il file copiato.

Per modificare il punto di ingresso PHP per l'applicazione principale:

Per modificare il file nginx.conf.sample**:

  1. Apri un editor di testo e controlla il file nginx.conf.sample ,<magento2_installation_directory>/nginx.conf.sample. Cerca la sezione seguente:

    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. Aggiornare il file nginx.conf.sample con le due righe seguenti prima dell'istruzione include:

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

Un esempio di punto di ingresso PHP aggiornato per l’applicazione principale è simile al seguente:

# 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;
}

Passaggio 4: aggiornare la configurazione dell’URL di base

È necessario aggiornare l'URL di base per i siti Web french e german nell'amministratore Commerce.

Aggiorna URL di base sito Web francese

  1. Accedi all'amministratore di Commerce e passa a Archivi > Impostazioni > Configurazione > Generale > Web.
  2. Modificare l'ambito di configurazione __ nel sito Web french.
  3. Espandere la sezione URL di base e aggiornare il valore URL di base e URL di collegamento di base a http://french.magento24.com/.
  4. Espandere la sezione URL di base (protetto) e aggiornare il valore URL di base protetto e URL collegamento di base protetto in https://french.magento24.com/.
  5. Fai clic su Salva configurazione e salva le modifiche alla configurazione.

Aggiorna URL base sito Web tedesco

  1. Accedi all'amministratore di Commerce e passa a Archivi > Impostazioni > Configurazione > Generale > Web.
  2. Modificare l'ambito di configurazione __ nel sito Web german.
  3. Espandere la sezione URL di base e aggiornare il valore URL di base e URL di collegamento di base a http://german.magento24.com/.
  4. Espandere la sezione URL di base (protetto) e aggiornare il valore URL di base protetto e URL collegamento di base protetto in https://german.magento24.com/.
  5. Fai clic su Salva configurazione e salva le modifiche alla configurazione.

Pulizia cache

Eseguire il comando seguente per pulire le cache config e full_page.

bin/magento cache:clean config full_page

Verifica il sito

A meno che il DNS non sia configurato per gli URL dei tuoi archivi, devi aggiungere una route statica all'host nel file hosts:

  1. Individuare il file hosts del sistema operativo.

  2. Aggiungi la route statica nel formato:

    code language-conf
    <ip-address> french.mysite.mg
    <ip-address> german.mysite.mg
    
  3. Vai a uno dei seguenti URL nel browser:

    code language-http
    http://mysite.mg/admin
    http://french.mysite.mg/frenchstoreview
    http://german.mysite.mg/germanstoreview
    
INFO
  • Potrebbero essere necessarie attività aggiuntive per distribuire più siti web in un ambiente ospitato; per ulteriori informazioni, rivolgiti al provider di hosting.
  • Sono necessarie attività aggiuntive per configurare Adobe Commerce sull'infrastruttura cloud; consulta Configurare più siti Web o store Cloud nella Guida di Commerce sull'infrastruttura cloud.

Risoluzione dei problemi

  • Se i siti francese e tedesco restituiscono 404 secondi ma l'amministratore si carica, assicurati di aver completato Passaggio 6: aggiungi il codice dello store all'URL di base.
  • Se tutti gli URL restituiscono il codice 404, assicurati di aver riavviato il server web.
  • Se l'amministratore non funziona correttamente, verificare di aver configurato correttamente gli host virtuali.
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c