Creé una aplicación web con 3 contenedores. Nginx, postgresql y php. En cada computadora que probé, funcionó sin problemas. En docker-compose asigné el puerto 8082 al 80.
Tuve que ponerlo en el servidor "real" y necesitaban asignar el host local: 8082 del servidor, donde se ejecuta la aplicación web a una dirección real.
El problema es que la página parece cargar las vistas pero no carga los js y css En la consola, si voy a xxx.yyy.it, puedo ver que no puede cargar "http: // localhost: 8082 /salida/final.js". Pero si, en el navegador, escribo "http: // xxx.yyy.it/output/final.js", puedo ver el archivo js
Realmente no sé cómo funcionan los servidores Apache o Nginx. Parece que no está transformando localhost:8082 a xxx.yyy.it
Prepararon, dentro de los sitios-disponibles de /etc/apache2 del servidor:
<VirtualHost *:80> ServerName xxx.yyy.it ProxyPass / http://localhost:8082/ #ProxyPassReverse / http://localhost:8082/ </VirtualHost>El docker-compose está configurado como:
nginx: image: nginx:stable-alpine container_name: nginx ports: - "8082:80" volumes: - ./src:/var/www/html - ./nginx/default.conf:/etc/nginx/conf.d/default.conf depends_on: - php - databasey el default.conf del contenedor nginx es este:
server { listen 80; index index.php index.html; server_name localhost; error_log /var/log/nginx/error.log; access_log /var/log/nginx/access.log; root /var/www/html/public; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { try_files $uri = 404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass php:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; } }¿Hay alguna manera de decirle al servidor Apache que siempre transforme localhost:8082 a xxx.yyy.it?