Quiero ejecutar phpmyadmin y mi API en el mismo dominio usando docker y nginx, como:
api => localhost:8888/ phpmyadmin => localhost:8888/phpmyadmin/
Configuración de Docker para el servicio phpmyadmin:
phpmyadmin: image: phpmyadmin restart: always environment: PMA_ARBITRARY: 1 PMA_HOST: mysql PMA_USER: ${DATABASE_USER} PMA_PASSWORD: ${DATABASE_PASSWORD} depends_on: - mysqlEsta es la configuración del servicio nginx:
nginx: image: nginx:stable-alpine volumes: - ./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro depends_on: - api - phpmyadmin restart: always ports: - '8888:80'Y este es el archivo de configuración de nginx:
upstream pma { server phpmyadmin; } server { listen 80; server_name localhost; # resolver 127.0.0.1; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://api:8889/; proxy_redirect off; } location ~/phpmyadmin(.*)$ { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://pma/$1/; proxy_redirect off; } } Todo funciona bien, puedo usar la API, como localhost:8888/url y funciona bien. Pero cuando solicito localhost:8888/phpmyadmin/ , lo carga, pero js y todo CSS da 404 no encontrado, aquí está la vista previa de la consola:
Me he estado rascando la cabeza durante más de 3 horas para arreglar esto, hice lo mejor que pude, pero no funciona. Soy bastante nuevo en nginx, así que alguien puede ayudarme.
¿Intentó agregar PMA_ABSOLUTE_URI en los entornos de servicio docker phpmyadmin? Mira esto :
PMA_ABSOLUTE_URI: la URL completa de phpMyAdmin. A veces es necesario cuando se usa en una configuración de proxy inverso.
Agrégalo como:
PMA_ABSOLUTE_URI: localhost:8888/phpmyadmin/ Tenga en cuenta el último / que es muy, muy importante, si lo pierde, no funcionará.