Puncte:0

Cum să serviți phpMyAdmin către localhost/phpMyAdmin în loc de localhost:8080 folosind nginx în docker

drapel gb

În proiectul meu, folosesc Django și nginx, dar vreau să îmi gestionez bazele de date cloud prin phpmyadmin.

Django funcționează bine, dar nu pot face același lucru cu phpmyadmin, deoarece rulează în apache la localhost:8080, când vreau să ruleze în nginx la localhost/phpmyadmin.

aici este docker-compose.yml

versiunea: "3.9"
   
Servicii:

  web:
    reporniți: întotdeauna
    construi:
      context: .
    env_file:
      - .env
    volume:
      - ./proiect:/proiect
    expune:
      - 8000
      
  nginx:
    reporniți: întotdeauna
    build: ./nginx
    volume:
      - ./static:/static
    porturi:
      - 80:80
    depinde de:
      - web

  phpmyadmin:
    imagine: phpmyadmin/phpmyadmin:latest
    reporniți: întotdeauna
    mediu inconjurator:
      PMA_HOST: <adresa_gazdă>
      PMA_USER: <utilizator>
      PMA_PASSWORD: <parolă>
      PMA_PORT: 3306
      UPLOAD_LIMIT: 300 M
    porturi:
      - 8080:80

și nginx default.conf

în amonte django{
    server web:8000;
}

Server{
    asculta 80;
    Locație / {
        proxy_pass http://django;
    }

    locație /pma/ {               
        proxy_pass http://localhost:8080/;                                 
        proxy_buffering dezactivat;                                     
    }

    locație /static/ {
        alias /static/;
    }
}

Sper că cineva va putea să-mi spună cum să fac ca nginx să funcționeze ca un proxy invers pentru containerul docker phpMyAdmin.

Dacă lipsesc unele informații importante, anunțați-mă.

Puncte:0
drapel ru

Nu specificați care este efectul negativ pe care îl experimentați, dar poate că phpMyAdmin se așteaptă ca un antet gazdă să direcționeze cererile către PMA_HOST.

Puteți încerca să treceți antetul gazdei în configurația dvs. proxy:

Locație / {
    proxy_pass http://localhost:8080/;                                 
    proxy_buffering dezactivat; 
    proxy_set_header Gazdă $gazdă;
}

Sfat: PhpMyAdmin nu este cunoscut pentru securitatea sa și dacă vă uitați la jurnalele serverului dvs. web, veți vedea o încercare constantă de a localiza instalarea phpMyadmin și de a verifica diverse vulnerabilități pe aceasta.

În opinia mea, phpMyadmin este un serviciu la nivel de dezvoltare și nu ar trebui să fie pe serverul de producție. Este mult mai sigur să ssh tunnel prin intermediul gazdei dvs. către serverul dvs. SQL, folosind, de exemplu, MySQL Workbench sau orice alt client SQL adecvat.

Ați instala phpmyadmin pe un server web de producție?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.