Configurar vários sites com o Nginx
Presumimos que:
-
Você está trabalhando em uma máquina de desenvolvimento (laptop, máquina virtual ou similar).
Tarefas adicionais podem ser necessárias para implantar vários sites em um ambiente hospedado; verifique com seu provedor de hospedagem para obter mais informações.
Tarefas adicionais são necessárias para configurar a Adobe Commerce na infraestrutura em nuvem. Após concluir as tarefas discutidas neste tópico, consulte Configurar vários sites ou lojas no guia do Commerce na Infraestrutura da Nuvem.
-
Você aceita vários domínios em um arquivo de host virtual ou usa um host virtual por site; os arquivos de configuração de host virtual estão localizados em
/etc/nginx/sites-available. -
Você usa o
nginx.conf.samplefornecido pelo Commerce somente com as modificações discutidas neste tutorial. -
O software Commerce está instalado em
/var/www/html/magento2. -
Você tem dois sites diferentes do padrão:
french.mysite.mgcom código de sitefrenche código de exibição de armazenamentofrgerman.mysite.mgcom código de sitegermane código de exibição de armazenamentodemysite.mgé o site padrão e a exibição de armazenamento padrão
Este é um roteiro para configurar vários sites com nginx:
-
Configurar sites, lojas e exibições de loja no Administrador.
-
Crie um Host virtual Nginx) para mapear vários sites ou um host virtual Nginx por site da Commerce (etapas detalhadas abaixo).
-
Passe os valores das variáveis MAGE
$MAGE_RUN_TYPEe$MAGE_RUN_CODEpara nginx usando onginx.conf.samplefornecido pela Magento (etapas detalhadas abaixo).-
$MAGE_RUN_TYPEpode serstoreouwebsite:- Use o
websitepara carregar seu site na vitrine eletrônica. - Use
storepara carregar qualquer exibição de loja em sua vitrine eletrônica.
- Use o
-
$MAGE_RUN_CODEé o código de exibição de site ou loja exclusivo que corresponde a$MAGE_RUN_TYPE.
-
-
Atualize a configuração de URL base no administrador do Commerce.
Etapa 1: criar sites, lojas e visualizações de loja no Administrador
Consulte Configurar vários sites, lojas e exibições de loja no Administrador.
Etapa 2: Criar hosts virtuais nginx
Esta etapa explica como carregar sites na loja. É possível usar as visualizações de sites ou de loja; se você usar as visualizações de loja, deverá ajustar os valores do parâmetro de acordo. Você deve concluir as tarefas desta seção como um usuário com privilégios sudo.
Usando apenas um arquivo de host virtual nginx, você pode manter sua configuração nginx simples e limpa. Ao usar vários arquivos de host virtual, você pode personalizar cada armazenamento (para usar um local personalizado para french.mysite.mg por instância).
Para criar um host virtual (simplificado):
Esta configuração se expande na nginx.
-
Abra um editor de texto e adicione o seguinte conteúdo a um novo arquivo chamado
/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; } -
Salve as alterações nos arquivos e saia do editor de texto.
-
Verifique a configuração do servidor:
code language-bash nginx -t -
Se for bem-sucedido, a seguinte mensagem será exibida:
code language-none nginx: configuration file /etc/nginx/nginx.conf test is successfulSe forem exibidos erros, verifique a sintaxe dos arquivos de configuração do host virtual.
-
Criar link simbólico no diretório
/etc/nginx/sites-enabled:code language-bash cd /etc/nginx/sites-enabledcode language-bash ln -s /etc/nginx/sites-available/magento magento
Para obter mais detalhes sobre a diretiva de mapa, consulte a documentação de nginx na diretiva de mapa.
Para criar vários hosts virtuais:
-
Abra um editor de texto e adicione o seguinte conteúdo a um novo arquivo chamado
/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; } -
Crie outro arquivo chamado
german.mysite.mgno mesmo diretório com o seguinte conteúdo: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; } -
Salve as alterações nos arquivos e saia do editor de texto.
-
Verifique a configuração do servidor:
code language-bash nginx -t -
Se for bem-sucedido, a seguinte mensagem será exibida:
code language-none nginx: configuration file /etc/nginx/nginx.conf test is successfulSe forem exibidos erros, verifique a sintaxe dos arquivos de configuração do host virtual.
-
Criar links simbólicos no diretório
/etc/nginx/sites-enabled:code language-bash cd /etc/nginx/sites-enabledcode language-bash ln -s /etc/nginx/sites-available/french.mysite.mg french.mysite.mgcode language-bash ln -s /etc/nginx/sites-available/german.mysite.mg german.mysite.mg
Etapa 3: Modificar nginx.conf.sample
nginx.conf.sample; ele é um arquivo Commerce principal que pode ser atualizado com cada nova versão. Em vez disso, copie o arquivo nginx.conf.sample, renomeie-o e edite o arquivo copiado.Para editar o ponto de entrada do PHP para o aplicativo principal:
Para modificar o arquivo nginx.conf.sample**:
-
Abra um editor de texto e revise o
nginx.conf.samplearquivo ,<magento2_installation_directory>/nginx.conf.sample. Procure a seguinte seção: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; } -
Atualize o arquivo
nginx.conf.samplecom as duas linhas a seguir antes da instrução include:code language-conf fastcgi_param MAGE_RUN_TYPE $MAGE_RUN_TYPE; fastcgi_param MAGE_RUN_CODE $MAGE_RUN_CODE;
Um exemplo de ponto de entrada do PHP atualizado para o aplicativo principal se parece com:
# 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;
}
Etapa 4: atualizar a configuração de URL base
Você deve atualizar a URL base dos sites french e german no administrador do Commerce.
Atualizar o URL Base do Site em Francês
- Faça logon no administrador do Commerce e navegue até Lojas > Configurações > Configuração > Geral > Web.
- Altere o escopo de configuração para o site
french. - Expanda a seção URLs de Base e atualize o valor de URL de Base e URL de Link de Base para
http://french.magento24.com/. - Expanda a seção URLs de Base (Seguro) e atualize o valor de URL de Base Segura e URL de Link de Base Segura para
https://french.magento24.com/. - Clique em Salvar configuração e salve as alterações de configuração.
Atualizar URL Base do Site Alemão
- Faça logon no administrador do Commerce e navegue até Lojas > Configurações > Configuração > Geral > Web.
- Altere o escopo de configuração para o site
german. - Expanda a seção URLs de Base e atualize o valor de URL de Base e URL de Link de Base para
http://german.magento24.com/. - Expanda a seção URLs de Base (Seguro) e atualize o valor de URL de Base Segura e URL de Link de Base Segura para
https://german.magento24.com/. - Clique em Salvar configuração e salve as alterações de configuração.
Limpe o cache
Execute o seguinte comando para limpar os caches config e full_page.
bin/magento cache:clean config full_page
Verifique seu site
A menos que você tenha um DNS configurado para as URLs dos armazenamentos, é necessário adicionar uma rota estática ao host no arquivo hosts:
-
Localize o arquivo
hostsdo sistema operacional. -
Adicione a rota estática no formato:
code language-conf <ip-address> french.mysite.mg <ip-address> german.mysite.mg -
Vá para um dos seguintes URLs no seu navegador:
code language-http http://mysite.mg/admin http://french.mysite.mg/frenchstoreview http://german.mysite.mg/germanstoreview
- Tarefas adicionais podem ser necessárias para implantar vários sites em um ambiente hospedado; verifique com seu provedor de hospedagem para obter mais informações.
- Tarefas adicionais são necessárias para configurar o Adobe Commerce na infraestrutura em nuvem; consulte Configurar vários sites ou lojas na nuvem no guia do Commerce na Infraestrutura em Nuvem.
Solução de problemas
- Se os sites em francês e alemão retornarem 404s, mas o Administrador carregar, verifique se você concluiu a Etapa 6: adicionar o código da loja à URL de base.
- Se todos os URLs retornarem 404s, reinicie o servidor da Web.
- Se o Admin não funcionar corretamente, certifique-se de configurar os hosts virtuais corretamente.