Error al crear una ...
 
Avisos
Vaciar todo

Error al crear una multitienda magento con servidor nginx

2 Respuestas
2 Usuarios
0 Reactions
947 Visitas
(@danitidia)
Respuestas: 1
New Member
Topic starter
 

Hola a todos,
Hace tiempo que tenía una multitienda con magento y apache que funcionaba a la perfección. Decidí cambiar de servidor y utilizar nginx.

Soy nuevo en nginx y me estoy volviendo loco siguiendo tutoriales por internet sin conseguir un resultado satisfactorio.

Os explico un poco lo que he hecho:

Primera Prueba Fallida

  • He creado un directorio llamado magento en el que lo instalé con un dominio www.dominio1.com
  • en el archivo nginx.conf cree las dos variables:

map $http_host $MAGE_RUN_CODE {
dominio2.com dominio2;
dominio1.com base;
}

  • Después cree otro domio (nginx/conf.d/dominio2.conf) apuntado hacia el mismo directorio llamado magento:

server {
server_name dominio2.com www.dominio2.com;
# Load configuration files for the default server block.
if ($host = dominio2.com) {
return 301 https://www.$host$request_uri;
}
include /etc/nginx/default.d/*.conf;
access_log /var/log/nginx/dominio2.access.log;
error_log /var/log/nginx/dominio2.error.log;
set $MAGE_ROOT /usr/share/nginx/html/magento/;
set $MAGE_MODE developer;
set $MAGE_RUN_TYPE website;
include /usr/share/nginx/html/magento/nginx.conf.sample;

listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/dominio2/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/dominio2/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

add_header Strict-Transport-Security "max-age=31536000" always; # managed by Certbot

}

server {
if ($host = www.dominio2.com) {
return 301 https://www.$host$request_uri;
} # managed by Certbot

if ($host = dominio2.com) {
return 301 https://www.$host$request_uri;
} # managed by Certbot

listen 80;
server_name www.dominio2.com dominio2.com
}

En Magento

  • Me metí en el backend de magento para instalar dos tiendas con el codigo de tienda base y dominio1 (Tiendas -todas las tiendas)
  • En tiendas - configuración - web cambié el alcance a dominio1
  • En opición General - web - Redireccionar automáticamente a la dirección URL base a NO
  • En url base, url base de enlaces, secure base url y URL base de Enlaces Segura puse la url del dominio 1.

reindexe index:reindex y borre el cache php bin/magento cache:clean y flush

Conseguí que cuando escribo en un navegador www.dominio1.com funcione perfecta, pero si escribo www.dominio2.com aparentemente es correcta o sea sale la url www.dominio2.com en la barra de direcciones del navegador. El problema es que si asocio otra pagina principal no responde y los hipervinculos (enlaces) que exiten en la página apuntan hacia www.dominio2.com.

También he probado eliminar del nginx.conf el map y ponerlo en cada dominio
map $http_host $MAGE_RUN_CODE {
dominio2.com dominio2;
}
server {
server_name dominio2.com www.dominio2.com;
...
Pero sin resultado.

Que puedo hacer????
Alguien me puede ayudar, por favor. Me estoy volviendo loco probando para nada.

 
Respondido : 08/03/2022 11:00 am
(@minkycm)
Respuestas: 1
New Member
 

Respondido por: @danitidia

Hola a todos,
Hace tiempo que tenía una multitienda con magento y apache que funcionaba a la perfección. Decidí cambiar de servidor y utilizar nginx.

Soy nuevo en nginx y me estoy volviendo loco siguiendo tutoriales por internet sin conseguir un resultado satisfactorio.

Os explico un poco lo que he hecho:

Primera Prueba Fallida

  • He creado un directorio llamado magento en el que lo instalé con un dominio www.dominio1.com
  • en el archivo nginx.conf cree las dos variables:

map $http_host $MAGE_RUN_CODE {
dominio2.com dominio2;
dominio1.com base;
}

  • Después cree otro domio (nginx/conf.d/dominio2.conf) apuntado hacia el mismo directorio llamado magento:

server {
server_name dominio2.com www.dominio2.com;
# Load configuration files for the default server block.
if ($host = dominio2.com) {
return 301 https://www.$host$request_uri;
}
include /etc/nginx/default.d/*.conf;
access_log /var/log/nginx/dominio2.access.log;
error_log /var/log/nginx/dominio2.error.log;
set $MAGE_ROOT /usr/share/nginx/html/magento/;
set $MAGE_MODE developer;
set $MAGE_RUN_TYPE website;
include /usr/share/nginx/html/magento/nginx.conf.sample;

listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/dominio2/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/dominio2/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

add_header Strict-Transport-Security "max-age=31536000" always; # managed by Certbot

}

server {
if ($host = www.dominio2.com) {
return 301 https://www.$host$request_uri;
} # managed by Certbot

if ($host = dominio2.com) {
return 301 https://www.$host$request_uri;
} # managed by Certbot

listen 80;
server_name parroquias-espana.es dominio2.com
}

En Magento

  • Me metí en el backend de magento para instalar dos tiendas con el codigo de tienda base y dominio1 (Tiendas -todas las tiendas)
  • En tiendas - configuración - web cambié el alcance a dominio1
  • En opición General - web - Redireccionar automáticamente a la dirección URL base a NO
  • En url base, url base de enlaces, secure base url y URL base de Enlaces Segura puse la url del dominio 1.

reindexe index:reindex y borre el cache php bin/magento cache:clean y flush

Conseguí que cuando escribo en un navegador www.dominio1.com funcione perfecta, pero si escribo www.dominio2.com aparentemente es correcta o sea sale la url www.dominio2.com en la barra de direcciones del navegador. El problema es que si asocio otra pagina principal no responde y los hipervinculos (enlaces) que exiten en la página apuntan hacia www.dominio2.com.

También he probado eliminar del nginx.conf el map y ponerlo en cada dominio
map $http_host $MAGE_RUN_CODE {
dominio2.com dominio2;
}
server {
server_name dominio2.com www.dominio2.com;
...
Pero sin resultado.

Que puedo hacer????
Alguien me puede ayudar, por favor. Me estoy volviendo loco probando para nada.

 

Hola,

Lamento escuchar que estás teniendo problemas con la configuración de Magento con Nginx. Vamos a intentar resolverlo paso a paso.

  1. Primero, asegúrate de que la configuración en Magento está correcta. Para cada tienda, debes tener el código de la tienda definido en el panel de administración de Magento.

  2. Luego, en tu archivo de configuración Nginx, es necesario mapear cada dominio con su código de tienda correspondiente, como ya has hecho. Pero asegúrate de que estos códigos correspondan exactamente con los que tienes en tu backend de Magento.

  3. Ahora bien, parece que el problema radica en cómo Nginx y Magento están interpretando los dominios y códigos de las tiendas. Asegúrate de que la configuración de 'MAGE_RUN_TYPE' esté en 'store' y no en 'website'. Esto se debe a que la directiva 'store' indica a Magento que utilice el código de la tienda para determinar cuál tienda cargar, mientras que 'website' utilizaría el código del sitio web.

  4. Finalmente, trata de reiniciar Nginx y limpia la caché de Magento después de realizar los cambios.

Espero que esta información te ayude. Por favor, no dudes en preguntar si tienes alguna otra duda. ¡Buena suerte!

 
Respondido : 02/08/2023 1:44 pm