Điểm:0

Cách cung cấp phpMyAdmin cho localhost/phpMyAdmin thay vì localhost:8080 bằng nginx trong docker

lá cờ gb

Trong dự án của tôi, tôi đang sử dụng Django và nginx, nhưng tôi muốn quản lý cơ sở dữ liệu đám mây của mình thông qua phpmyadmin.

Django đang hoạt động tốt nhưng tôi không thể làm điều tương tự với phpmyadmin vì nó đang chạy trong apache tại localhost:8080, khi tôi muốn nó chạy trong nginx tại localhost/phpmyadmin.

đây là docker-compose.yml

phiên bản: "3.9"
   
dịch vụ:

  web:
    khởi động lại: luôn luôn
    xây dựng:
      bối cảnh: .
    env_file:
      - .env
    khối lượng:
      - ./dự án:/dự án
    lộ ra:
      - 8000
      
  nginx:
    khởi động lại: luôn luôn
    xây dựng: ./nginx
    khối lượng:
      - ./tĩnh:/tĩnh
    cổng:
      - 80:80
    phụ thuộc:
      - mạng

  phpmyadmin:
    hình ảnh: phpmyadmin/phpmyadmin: mới nhất
    khởi động lại: luôn luôn
    môi trường:
      PMA_HOST: <host_address>
      PMA_USER: <người dùng>
      PMA_PASSWORD: <mật khẩu>
      PMA_PORT: 3306
      TẢI LÊN_LIMIT: 300M
    cổng:
      - 8080:80

và nginx default.conf

ngược dòng django{
    web máy chủ: 8000;
}

người phục vụ{
    nghe 80;
    địa điểm / {
        proxy_pass http://django;
    }

    vị trí /pma/ {               
        proxy_pass http://localhost:8080/;                                 
        tắt proxy_buffering;                                     
    }

    vị trí /tĩnh/ {
        bí danh /tĩnh/;
    }
}

Tôi hy vọng ai đó sẽ có thể cho tôi biết cách làm cho nginx hoạt động như một proxy ngược cho bộ chứa docker phpMyAdmin.

Nếu một số thông tin quan trọng bị thiếu xin vui lòng cho tôi biết.

Điểm:0
lá cờ ru

Bạn không chỉ định tác động xấu mà bạn đang gặp phải là gì, nhưng có lẽ phpMyAdmin mong đợi một tiêu đề máy chủ để định tuyến các yêu cầu tới PMA_HOST.

Bạn có thể thử chuyển tiêu đề Máy chủ trong cấu hình proxy của mình:

địa điểm / {
    proxy_pass http://localhost:8080/;                                 
    tắt proxy_buffering; 
    proxy_set_header Máy chủ lưu trữ $host;
}

Lời khuyên: PhpMyAdmin không được biết đến với tính bảo mật và nếu bạn xem nhật ký máy chủ web của mình, bạn sẽ thấy nỗ lực liên tục để xác định vị trí cài đặt phpMyadmin và kiểm tra các lỗ hổng khác nhau trên đó.

Theo tôi, phpMyadmin là một dịch vụ ở cấp độ phát triển và không nên có trong máy chủ sản xuất. Sẽ an toàn hơn khi ssh đường hầm qua máy chủ của bạn đến máy chủ SQL của bạn bằng cách sử dụng MySQL Workbench hoặc bất kỳ máy khách SQL phù hợp nào khác.

Bạn có cài đặt phpmyadmin trên máy chủ web sản xuất không?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.