Jump to content

Instalar Prestashop con docker-compose detrás de Nginx existente


Recommended Posts

Hola a todos. Esta es mi primera publicación.

Quiero instalar Prestashop en un VPS que tengo usando docker-compose para ayudar a un amigo que quiere levantar una tienda. Este servidor ya está configurado con una instalación de Nginx, ya que lo uso para otras aplicaciones distintas.

En mi máquina local Prestashop me funciona sin ningún problema usando esta configuración:

version: '3'

services:
  prestashop_db:
    image: mariadb
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=prestashop
  prestashop:
    image: 'prestashop/prestashop:1.7'
    environment:
      - PS_DEV_MODE=1
      - DB_SERVER=prestashop_db
      - DB_USER=root
      - DB_PASSWD=root
      - DB_NAME=prestashop
      - PS_INSTALL_AUTO=0
    ports:
      - '8082:80'
      - '8443:443'
    links:
      - prestashop_db:prestashop_db
    depends_on:
      - prestashop_db

Mi problema es cuando lo hago correr en el servidor. No entiendo muy bien cómo tengo que hacer la configuración de Nginx. Para otras aplicaciones que he instalado es tan fácil como hacer un proxy_pass y el puerto donde funciona la aplicación, pero en este caso hay otras cosas que configurar que no domino bien. Siguiendo varios tutoriales llegué a esta configuración:

server {
  server_tokens off;
  server_name alafuerza.ferativ.com;
  listen 80;

  location ^~ /.well-known {
    alias /var/www/html/.well-known/;
  }
  location / {
    return 301 https://$server_name$request_uri;
  }
}

server {
  server_tokens off;
  server_name alafuerza.ferativ.com;
  listen 443 ssl;
  ssl_certificate /etc/letsencrypt/live/alafuerza.ferativ.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/alafuerza.ferativ.com/privkey.pem;

  location / {
    proxy_redirect off;
    proxy_pass http://localhost:8082;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
    proxy_connect_timeout 300;
    proxy_send_timeout 300;
    proxy_read_timeout 300;
    send_timeout 300;
  }
}

Para instalar anda super bien. Logro hacer toda la instalación sin problemas.

El problema aparece después. El panel de administración abre bien. Aparece el ícono de https arriba, pero varios scripts no cargan porque los links vienen como http. Cuando abro el front aparece el ícono de https también, pero la página se ve pésimo porque también todos los links internos cargan como http.

Siguiendo este tutorial, activo el https de prestashop en la base de datos: https://blog.steakelectronics.com/2019/03/27/prestashop-docker-ssl-nginx-reverse-proxy/

UPDATE ps_configuration SET VALUE = '1' WHERE NAME IN ('PS_SSL_ENABLED', 'PS_SSL_ENABLED_EVERYWHERE');

Pero después de eso abro el front y me tira un error por demasiadas redirecciones y arroja un código 301.

Si alguien me puede orientar, lo agradecería mucho. Hasta ahora soluciones que he visto usan nginx como un contenedor, pero no consideran el caso en que nginx esté instalado en el servidor funcionando para más aplicaciones.

Link to comment
Share on other sites

  • 2 months later...

Hola CodeSXT,

Lograste solucionar de alguna froma tu problema? como lo hiciste?

Me está pasando lo mismo. En mi setup, estoy usando un nginx de proxy en un container el que fuerza que todas las comunicaciones sean mediante https (443), y un docker-compose.yml similar a tuyo. La instalación también me funciona sin problemas, luego borro la carpeta install/, y comienzan los errores 301 por demasiadas redirecciones.

Edited by uniqdom (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...