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.sample
fornecido 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.mg
com código de sitefrench
e código de exibição de armazenamentofr
german.mysite.mg
com código de sitegerman
e código de exibição de armazenamentode
mysite.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_TYPE
e$MAGE_RUN_CODE
para nginx usando onginx.conf.sample
fornecido por Magento (etapas detalhadas abaixo).-
$MAGE_RUN_TYPE
pode serstore
ouwebsite
:- Use o
website
para carregar seu site na vitrine eletrônica. - Use
store
para 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 successful
Se 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-enabled
code 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.mg
no 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 successful
Se 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-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
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.sample
arquivo ,<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.sample
com 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
hosts
do 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.