django - 在 docker 容器中使用 pgadmin 和 nginx

标签 django docker nginx reverse-proxy pgadmin

我觉得配置环境有问题,包括 postgres、pgadmin 和 nginx。所有这些服务都在 docker 容器中,这是我的 docker-compose 文件:

version: '3'

services:
  postgres:
    image: postgres
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres

  pgadmin:
    links:
      - postgres:postgres
    image: dpage/pgadmin4:3.0
    environment:
      PGADMIN_DEFAULT_EMAIL: 'postgres@pg.com'
      PGADMIN_DEFAULT_PASSWORD: 'postgres'
    ports:
      - "5050:80"
    restart: unless-stopped

  nginx:
    links:
      - pgadmin:pgadmin
    image: "nginx:1.13.12"
    ports:
      - "80:80"
    volumes:
      - ./nginxServers/server:/etc/nginx/conf.d/default.conf

这是我的 nginx.conf , 置于 ./nginxServers/server :
server {
    listen       80;
    server_name  _;

    location  /pgadmin/ {                                                                    
            proxy_pass http://pgadmin/;
    }
}

如您所见,这是一个非常简单的设置,允许我通过 http://localhost/pgadmin 使用 pgadmin .

不幸的是,这行不通。我可以通过 http://127.0.0.1:5050 看到 pgadmin Web 界面,但是当我导航到 http://127.0.0.1/pgadmin ,所有的样式和脚本都没有加载。

我还尝试了 nginx 配置中的另一个位置:
location  /pgadmin {                                                                    
            proxy_pass http://pgadmin;
}

但这也没有帮助。

因此,我坚持正确配置 nginx 作为 pgadmin 的反向代理。

附言正如我在谷歌上搜索的那样,这个问题可能与提供 django 静态内容有关,但由于我不熟悉 django,我无法找到任何解决方法。

对于这个奇怪问题的任何帮助,我将不胜感激。

最佳答案

可能你已经解决了。但问题是 nginx 解析主机名的方式。出于性能原因,它只执行一次。强制nginx动态搜索ip,只需要在nginx配置中添加Docker解析器即可

http {
  resolver 127.0.0.11 ipv6=off;
}

见底部:docker dns server

关于django - 在 docker 容器中使用 pgadmin 和 nginx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50043844/

相关文章:

docker - 为您的容器化应用程序提供自定义命令行工具的最佳实践是什么?

linux - 无法在 OSX Yosemite 上启动 docker

node.js - 如何在 Openshift NodeJS 应用程序上提供静态资源

jquery - 从 JSON 更新 Django 中的数据表

python - 如何让我的 django 日期时间字段显示秒数

python - Docker CLI允许使用标签,但是Docker Python API引发APIError

Nginx 速率限制 GET 或 POST 请求仅在一个位置

redirect - Nginx 在位置下返回

javascript - 如何在导入语句中使用变量

python - Django 检索模型的所有相关属性