Score:0

วิธีให้บริการ phpMyAdmin ไปยัง localhost/phpMyAdmin แทน localhost:8080 โดยใช้ nginx ใน docker

ธง gb

ในโครงการของฉัน ฉันใช้ Django และ nginx แต่ฉันต้องการจัดการฐานข้อมูลบนคลาวด์ผ่าน phpmyadmin

Django ทำงานได้ดี แต่ฉันทำแบบเดียวกันกับ phpmyadmin ไม่ได้เพราะมันทำงานใน apache ที่ localhost:8080 เมื่อฉันต้องการให้มันทำงานใน nginx ที่ localhost/phpmyadmin

นี่คือนักเทียบท่า-compose.yml

รุ่น: "3.9"
   
บริการ:

  เว็บ:
    รีสตาร์ท: เสมอ
    สร้าง:
      บริบท: .
    env_file:
      - .env
    ปริมาณ:
      - ./project:/project
    เปิดเผย:
      - 8000
      
  จิงซ์:
    รีสตาร์ท: เสมอ
    สร้าง: ./nginx
    ปริมาณ:
      - ./static:/คงที่
    พอร์ต:
      - 80:80
    ขึ้นอยู่กับ:
      - เว็บ

  phpmyadmin:
    รูปภาพ: phpmyadmin/phpmyadmin:latest
    รีสตาร์ท: เสมอ
    สิ่งแวดล้อม:
      PMA_HOST: <โฮสต์_ที่อยู่>
      PMA_USER: <ผู้ใช้>
      PMA_PASSWORD: <รหัสผ่าน>
      PMA_PORT: 3306
      UPLOAD_LIMIT: 300 ม
    พอร์ต:
      - 8080:80

และ nginx default.conf

ต้นน้ำ django{
    เว็บเซิร์ฟเวอร์:8000;
}

เซิร์ฟเวอร์{
    ฟัง 80;
    ที่ตั้ง / {
        proxy_pass http://django;
    }

    ตำแหน่ง /pma/ {               
        proxy_pass http://localhost:8080/;                                 
        ปิด proxy_buffering;                                     
    }

    ตำแหน่ง / คงที่ / {
        นามแฝง /คงที่/;
    }
}

ฉันหวังว่าใครสักคนจะสามารถบอกฉันถึงวิธีทำให้ nginx ทำงานเป็นพร็อกซีย้อนกลับสำหรับคอนเทนเนอร์นักเทียบท่า phpMyAdmin

หากข้อมูลสำคัญขาดหายไป โปรดแจ้งให้เราทราบ

Score:0
ธง ru

คุณไม่ได้ระบุว่าผลร้ายที่คุณกำลังประสบคืออะไร แต่บางที phpMyAdmin คาดหวังให้ส่วนหัวของโฮสต์กำหนดเส้นทางคำขอไปยัง PMA_HOST.

คุณสามารถลองส่งส่วนหัวของโฮสต์ในการกำหนดค่าพร็อกซีของคุณ:

ที่ตั้ง / {
    proxy_pass http://localhost:8080/;                                 
    ปิด proxy_buffering; 
    proxy_set_header โฮสต์ $host;
}

คำแนะนำ: ไม่รู้จัก PhpMyAdmin ในเรื่องความปลอดภัย และหากคุณดูบันทึกของเว็บเซิร์ฟเวอร์ คุณจะเห็นความพยายามอย่างต่อเนื่องเพื่อค้นหาตำแหน่งการติดตั้ง phpMyadmin และตรวจหาช่องโหว่ต่างๆ บนนั้น

ในความเห็นของฉัน phpMyadmin เป็นบริการระดับการพัฒนาและไม่ควรอยู่ในเซิร์ฟเวอร์ที่ใช้งานจริง เป็นวิธีที่ปลอดภัยกว่าในการใช้ ssh tunnel ผ่านโฮสต์ของคุณไปยังเซิร์ฟเวอร์ SQL ของคุณโดยใช้ตัวอย่างเช่น MySQL Workbench หรือไคลเอนต์ SQL อื่น ๆ ที่เหมาะสม

คุณจะติดตั้ง phpmyadmin บนเว็บเซิร์ฟเวอร์ที่ใช้งานจริงหรือไม่?

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา