django - 使用 Docker-Compose 和 nginx-proxy 时出现 502 Bad Gateway 错误

标签 django nginx docker docker-compose

我是 nginx 新手,正在尝试使用 Docker-Compose 设置链接的 DOcker 容器。

基于教程 here和 jwilder 的文档 here ,我正在尝试在 Django 容器之上部署 Nginx 代理。 docker-compose.yml 的结构如下:

  build: .
  command:  bash -c "sleep 5 && python -u reroute/manage.py runserver 0.0.0.0:8081"
  volumes:
    - .:/code
  environment:
    - PYTHONUNBUFFERED=0
    - VIRTUAL_HOST=site1.com
    - VIRTUAL_PORT=8081
  ports:
    - "8081:8081"
  links:
    - db

db:
  image: postgres:latest
  environment:
    POSTGRES_PASSWORD: xxxxxx
    POSTGRES_USER: xxxxxx
  ports:
    - "5432"
  volumes:
    - ./backups:/home/backups

nginx:
  image: jwilder/nginx-proxy
  restart: always
  volumes:
    - /var/run/docker.sock:/tmp/docker.sock
  ports:
    - "80:80"

Nginx 的 .conf 文件中的配置如下所示:

server {
    server_name _; # This is just an invalid value which will never trigger on a real hostname.
    listen 80;
    access_log /var/log/nginx/access.log vhost;
    return 503;
}
upstream urls.mapquest.com {
                ## Can be connect with "bridge" network
            # googleadtrafficredirect_web_1
            server 172.17.0.4:8081;
}
server {
    server_name urls.mapquest.com;
    listen 80 ;
    access_log /var/log/nginx/access.log vhost;
    location / {
        proxy_pass http://urls.mapquest.com;
    }
}

我希望 nginx 代理重定向到应用程序本身。我在 Ubuntu 上编辑了主机文件以指向我指定的新域。但是,当我在本地部署应用程序时,我收到 502 Bad Gateway 错误,并且在日志中查找 Nginx 容器显示我收到连接被拒绝错误:

nginx.1    | 2016/06/21 17:39:00 [error] 24#24: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 172.17.0.1, server: urls.mapquest.com, request: "GET / HTTP/1.1", upstream: "http://172.17.0.4:8081/", host: "site1.com"

有人能指出我问题所在的正确方向吗?

最佳答案

事实证明应用程序本身有问题。在对远程版本进行更改之前,我正在本地测试 docker-compose 容器,并且忘记启用我的应用程序工作所需的某些配置。更正后,应用程序正确加载,并且 nginx 成功重新路由。

关于django - 使用 Docker-Compose 和 nginx-proxy 时出现 502 Bad Gateway 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37951415/

相关文章:

docker - 如何将 dos2unix 添加到基于 Alpine 的 docker 容器中?

php - 为什么 Composer 安装突然失败?

python - Django 1.8 迁移 - "NoneType"对象没有属性 "_meta"

python - Django 休息框架 : using ModelViewSet to get a list of instances by their PKs

python - 不忽略 db.sqlite3 文件,即使我在 django 项目的 .gitignore 中指定

regex - Nginx 正则表达式和位置通配符

angular - 405 Method Not Allowed and "CORS header ‘Access-Control-Allow-Origin’ missing“虽然tcpdump说它正在被发送出去

python - 如何在 Django REST 框架中使用事务?

Node.js+Nginx 抛出 502 bad gateway 错误

node.js - Dockerizing Node.js 应用程序 - : ENV PATH/app/node_modules/. bin:$PATH 是什么