No meu projeto, estou usando Django e nginx, mas quero gerenciar meus bancos de dados em nuvem através do phpmyadmin.
O Django está funcionando bem, mas não posso fazer o mesmo com o phpmyadmin porque ele está rodando no apache em localhost:8080, quando quero que ele rode no nginx em localhost/phpmyadmin.
aqui está o docker-compose.yml
version: "3.9"
services:
web:
restart: always
build:
context: .
env_file:
- .env
volumes:
- ./project:/project
expose:
- 8000
nginx:
restart: always
build: ./nginx
volumes:
- ./static:/static
ports:
- 80:80
depends_on:
- web
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
restart: always
environment:
PMA_HOST: <host_address>
PMA_USER: <user>
PMA_PASSWORD: <password>
PMA_PORT: 3306
UPLOAD_LIMIT: 300M
ports:
- 8080:80
e nginx default.conf
upstream django{
server web:8000;
}
server{
listen 80;
location / {
proxy_pass http://django;
}
location /pma/ {
proxy_pass http://localhost:8080/;
proxy_buffering off;
}
location /static/ {
alias /static/;
}
}
Espero que alguém possa me dizer como fazer o nginx funcionar como um proxy reverso para o contêiner docker phpMyAdmin.
Se alguma informação importante estiver faltando, por favor me avise.
Responder1
Você não especifica qual é o efeito negativo que está enfrentando, mas talvez o phpMyAdmin espere que um cabeçalho de host encaminhe solicitações para PMA_HOST
.
Você poderia tentar passar o cabeçalho do host na sua configuração de proxy:
location / {
proxy_pass http://localhost:8080/;
proxy_buffering off;
proxy_set_header Host $host;
}
Palavra de conselho: O PhpMyAdmin não é conhecido por sua segurança e se você olhar os logs do seu servidor web, verá uma tentativa constante de localizar a instalação do phpMyadmin e verificar se há várias vulnerabilidades nela.
Na minha opinião, o phpMyadmin é um serviço de nível de desenvolvimento e não deveria estar em um servidor de produção. É muito mais seguro fazer um túnel ssh através do seu host para o seu servidor SQL usando, por exemplo, MySQL Workbench ou qualquer outro cliente SQL adequado.
Você instalaria o phpmyadmin em um servidor web de produção?