Konfigurera flera webbplatser med Nginx
Vi antar att:
-
Du arbetar på en utvecklingsmaskin (bärbar dator, virtuell dator eller liknande).
Ytterligare uppgifter kan behövas för att distribuera flera webbplatser i en värdmiljö. Kontakta din värdleverantör för mer information.
Ytterligare uppgifter krävs för att konfigurera Adobe Commerce i molninfrastrukturen. När du har slutfört de uppgifter som beskrivs i det här avsnittet kan du läsa Konfigurera flera webbplatser eller butiker i guiden för Commerce om molninfrastruktur.
-
Du godkänner flera domäner i en virtuell värdfil eller använder en virtuell värd per webbplats. Konfigurationsfilerna för den virtuella värden finns i
/etc/nginx/sites-available
. -
Du använder
nginx.conf.sample
som tillhandahålls av Commerce med endast de ändringar som beskrivs i den här självstudiekursen. -
Commerce är installerat i
/var/www/html/magento2
. -
Du har två andra webbplatser än standardwebbplatsen:
french.mysite.mg
med webbplatskodfrench
och spara vykodfr
german.mysite.mg
med webbplatskodgerman
och spara vykodde
mysite.mg
är standardwebbplats och standardbutiksvy
Här följer en färdplan för hur du konfigurerar flera webbplatser med Nginx:
-
Konfigurera webbplatser, butiker och butiksvyer i administratören.
-
Skapa en Nginx virtuell värd för att mappa många webbplatser eller en Nginx virtuell värd per Commerce webbplats (steg som beskrivs nedan).
-
Skicka värdena för MAGE-variablerna
$MAGE_RUN_TYPE
och$MAGE_RUN_CODE
till nginx med hjälp av Magentonginx.conf.sample
(steg som anges nedan).-
$MAGE_RUN_TYPE
kan vara antingenstore
ellerwebsite
:- Använd
website
för att läsa in din webbplats i din butik. - Använd
store
för att läsa in alla butiksvyer i din butik.
- Använd
-
$MAGE_RUN_CODE
är den unika webbplatsens eller butiksvyns kod som motsvarar$MAGE_RUN_TYPE
.
-
-
Uppdatera bas-URL-konfigurationen för Commerce-administratören.
Steg 1: Skapa webbplatser, butiker och butiksvyer i administratören
Se Konfigurera flera webbplatser, butiker och butiksvyer i administratören.
Steg 2: Skapa nya virtuella värdar
I det här steget beskrivs hur du läser in webbplatser i butiken. Du kan använda antingen webbplatser eller butiksvyer. Om du använder butiksvyer måste du justera parametervärdena därefter. Du måste slutföra uppgifterna i det här avsnittet som en användare med behörigheten sudo
.
Genom att bara använda en nginx virtuell värdfil kan du hålla din ursprungliga konfiguration enkel och ren. Genom att använda flera virtuella värdfiler kan du anpassa varje butik (till exempel för att använda en anpassad plats för french.mysite.mg
).
Så här skapar du en virtuell värd (förenklad):
Den här konfigurationen utökas vid nginx-konfigurationen.
-
Öppna en textredigerare och lägg till följande innehåll i en ny fil med namnet
/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; }
-
Spara ändringarna i filerna och avsluta textredigeraren.
-
Verifiera serverkonfigurationen:
code language-bash nginx -t
-
Om det lyckas visas följande meddelande:
code language-none nginx: configuration file /etc/nginx/nginx.conf test is successful
Om fel visas kontrollerar du syntaxen för konfigurationsfilerna för det virtuella värdsystemet.
-
Skapa en symbolisk länk i katalogen
/etc/nginx/sites-enabled
:code language-bash cd /etc/nginx/sites-enabled
code language-bash ln -s /etc/nginx/sites-available/magento magento
Mer information om mappningsdirektivet finns i nginx-dokumentationen för mappningsdirektivet.
Så här skapar du flera virtuella värdar:
-
Öppna en textredigerare och lägg till följande innehåll i en ny fil med namnet
/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; }
-
Skapa en annan fil med namnet
german.mysite.mg
i samma katalog med följande innehåll: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; }
-
Spara ändringarna i filerna och avsluta textredigeraren.
-
Verifiera serverkonfigurationen:
code language-bash nginx -t
-
Om det lyckas visas följande meddelande:
code language-none nginx: configuration file /etc/nginx/nginx.conf test is successful
Om fel visas kontrollerar du syntaxen för konfigurationsfilerna för det virtuella värdsystemet.
-
Skapa symboliska länkar i katalogen
/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
Steg 3: Ändra nginx.conf.sample
nginx.conf.sample
. Det är en viktig Commerce-fil som kan uppdateras med varje ny version. Kopiera istället filen nginx.conf.sample
, byt namn på den och redigera sedan den kopierade filen.Så här redigerar du PHP-startpunkten för huvudprogrammet:
Så här ändrar du filen nginx.conf.sample
**:
-
Öppna en textredigerare och granska filen
nginx.conf.sample
,<magento2_installation_directory>/nginx.conf.sample
. Leta efter följande avsnitt: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; }
-
Uppdatera filen
nginx.conf.sample
med följande två rader före programsatsen include:code language-conf fastcgi_param MAGE_RUN_TYPE $MAGE_RUN_TYPE; fastcgi_param MAGE_RUN_CODE $MAGE_RUN_CODE;
Ett exempel på en uppdaterad PHP-startpunkt för huvudprogrammet ser ut så här:
# 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;
}
Steg 4: Uppdatera konfigurationen för bas-URL
Du måste uppdatera bas-URL:en för webbplatserna french
och german
i Commerce-administratören.
Uppdatera bas-URL för fransk webbplats
- Logga in på Commerce-administratören och gå till Lager > Inställningar > Konfiguration > Allmänt > Webb.
- Ändra konfigurationsomfånget till webbplatsen
french
. - Expandera avsnittet Bas-URL:er och uppdatera värdet Bas-URL och Bas-länk-URL till
http://french.magento24.com/
. - Expandera avsnittet Bas-URL:er (säker) och uppdatera URL:en för säker bas och säker baslänk till
https://french.magento24.com/
. - Klicka på Spara konfiguration och spara konfigurationsändringarna.
Uppdatera bas-URL för tysk webbplats
- Logga in på Commerce-administratören och gå till Lager > Inställningar > Konfiguration > Allmänt > Webb.
- Ändra konfigurationsomfånget till webbplatsen
german
. - Expandera avsnittet Bas-URL:er och uppdatera värdet Bas-URL och Bas-länk-URL till
http://german.magento24.com/
. - Expandera avsnittet Bas-URL:er (säker) och uppdatera URL:en för säker bas och säker baslänk till
https://german.magento24.com/
. - Klicka på Spara konfiguration och spara konfigurationsändringarna.
Rensa cachen
Kör följande kommando för att rensa cacheminnen config
och full_page
.
bin/magento cache:clean config full_page
Verifiera platsen
Om du inte har ställt in DNS för butikernas URL:er måste du lägga till en statisk väg till värden i din hosts
-fil:
-
Leta reda på operativsystemsfilen
hosts
. -
Lägg till den statiska vägen i formatet:
code language-conf <ip-address> french.mysite.mg <ip-address> german.mysite.mg
-
Gå till en av följande URL:er i webbläsaren:
code language-http http://mysite.mg/admin http://french.mysite.mg/frenchstoreview http://german.mysite.mg/germanstoreview
- Ytterligare uppgifter kan behövas för att distribuera flera webbplatser i en värdmiljö. Kontakta din värdleverantör för mer information.
- Ytterligare uppgifter krävs för att konfigurera Adobe Commerce för molninfrastruktur. Se Konfigurera flera molnwebbplatser eller molnbutiker i Commerce för molninfrastruktur.
Felsökning
- Om de franska och tyska webbplatserna returnerar 404s men administratören läser in, kontrollerar du att du har slutfört Steg 6: Lägg till butikskoden i bas-URL:en.
- Om alla URL-adresser returnerar 404s måste du starta om webbservern.
- Om administratören inte fungerar som den ska ska du kontrollera att du har konfigurerat dina virtuella värdar korrekt.