AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 757235
Accepted
gogasca
gogasca
Asked: 2016-02-16 00:53:38 +0800 CST2016-02-16 00:53:38 +0800 CST 2016-02-16 00:53:38 +0800 CST

Docker compose 和 nginx 负载均衡器

  • 772

目前我有 2 个 Docker 容器:

  • 应用程序(python烧瓶)
  • 负载均衡器 (nginx)

我使用docker-composer up分别启动两个容器 Nginx 正在侦听端口 8080,并且应该将 HTTP 请求转发到正在侦听端口 8081 的应用程序。目前这不起作用,因为 nginx 对应用程序容器一无所知。

86615a5b0f02        parzee/loadbalancer   "/usr/local/bin/start"   3 minutes ago       Up 3 minutes        127.0.0.1:8080->8080/tcp   loadbalancer_loadbalancer_1
9adc8a04b356        parzee/application    "/usr/local/bin/start"   6 minutes ago       Up 5 minutes        127.0.0.1:8081->8081/tcp   application_application_1

这是我的默认配置

upstream application {
    ip_hash;
        server application_application_1:8081 fail_timeout=0;
        server application_application_2:8081 fail_timeout=0;
    keepalive 64;
}

server {
    listen 8080;
    server_name loadbalancer;
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    location / {
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;

    #Timeout after 8 hours
    proxy_read_timeout 43200000;
    proxy_connect_timeout 43200000;

        proxy_redirect off;
        if (!-f $request_filename) {
            proxy_pass http://application;
            break;
        }
    }
}

我得到:

2016/02/15 08:42:07 [emerg] 21#0: host not found in upstream "application_application_1:8081" in /etc/nginx/sites-enabled/default:3
2016/02/15 08:42:10 [emerg] 22#0: host not found in upstream "application_application_1:8081" in /etc/nginx/sites-enabled/default:3

如何使用主机或 IP 地址定义我的 nginx 配置?我没有使用 IP 地址,因为 docker 可能会从已知范围分配不同的 IP。有什么建议么?我应该在一个 docker-compose.yml 文件中启动所有这些吗?

ubuntu
  • 2 2 个回答
  • 1914 Views

2 个回答

  • Voted
  1. Best Answer
    francesco
    2016-02-17T02:23:11+08:002016-02-17T02:23:11+08:00

    您是否在 docker-compose.yml 文件中定义了指向 application_application_1 的链接?

    • 1
  2. gogasca
    2016-02-17T02:27:49+08:002016-02-17T02:27:49+08:00

    链接成功了:

    database:
      image: parzee/database
      volumes_from:
        - dbdata
      ports:
        - "5432:5432"
    
    # RABBITMQ TCP:5672
    rabbitmq:
      image: parzee/rabbitmq-server
      hostname: rabbitmq
      ports:
        - "5672:5672"
        - "15672:15672"
    
    # LIGHTTPD TCP:8083
    lighttpd:
      image: parzee/lighttpd
      hostname: lighttpd
      ports: 
        - "8083:8083"
      volumes:
        - /usr/local/src/containers/application/volumes/imbue/:/usr/local/src/imbue/application/imbue/utils/security/des/
        - /usr/local/src/containers/lighttpd/volumes/log/:/var/log/lighttpd/ 
    
    # APPLICATION TCP:8081
    application_1:
      image: parzee/application
      hostname: application_1
      links:
            - database:database
            - lighttpd:lighthttpd
            - rabbitmq:rabbitmq
    
    • 0

相关问题

  • 无法通过 Ubuntu VPN 访问外部网络

  • ubuntu apt-get upgrade - 如何在 shell 中单击确定?

  • VirtualBox 上 Ubuntu 的访客优化技巧 [关闭]

  • 外部硬盘上的 virtualbox 虚拟硬盘驱动器(Vista 主机上的 ubuntu 客户机)

  • 如何在 Ubuntu 上挂载 LVM 分区?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve