【问题标题】:How to setup Nginix Docker Reverse proxy如何设置 Nginx Docker 反向代理
【发布时间】:2019-03-11 01:04:48
【问题描述】:

我正在尝试为在非标准端口上运行的 Web 应用程序(另一个 docker 容器)使用 Nginix 反向代理容器,

不幸的是,我无法编辑我的 Web 应用程序容器,因为它是由某个供应商开发的,所以我有一个简单的请求,我需要使用 80/443 将 nginx 设置为前端并将所有请求转发到 10.0.0.0:10101(Web 应用程序容器)。

我尝试过 jwilder/nginx 代理和默认 docker nginx 容器无法获得正确的配置。任何线索都会很棒。

目前我还没有分享任何配置文件,我可以按需分享。这里是环境细节

OS - Ubuntu
Azure

【问题讨论】:

    标签: azure docker nginx


    【解决方案1】:

    使用proxy_pass nginx 功能

    假设您已链接两个容器,并且 Web 应用程序容器的名称是 webapp,请在 nginx 容器上使用此配置

      upstream backend {
        server webapp:10101;
      }
    
      server {
        listen 80;
    
        location / {
          proxy_pass   http://backend;
        }
      }
    

    注意:请注意,我跳过了一些配置,因为这只是一个示例

    将配置放入nginx.conf文件中,然后像这样部署容器

    docker run -d -v $(pwd)/nginx.conf:/etc/nginx/nginx.conf -p 80:80 nginx 
    

    然后你就可以通过http://locahost 访问你的webapp

    【讨论】:

    • 嗨 Hernan,我已经尝试过了,并且肯定遗漏了一些东西,抱歉我在这里太天真了,这就是我所做的 1. 我有带有公共 IP 的 Azure 机器 2. 安装的 docker 容器来自它在非标准端口 3 上运行的供应商。使用上述 conf 4 安装 Nginix 容器。在桥接网络 docker network connect dinesh-test:dinesh nginx-proxy fermant 中使用以下命令链接两个容器 5.尝试浏览 url 但没有运气
    • 我认为我在将容器与 nginx 容器链接时犯了错误我使用以下命令 docker run -d --name dinesh -p 80:80 -p 443:443 --link=vigilant_liskov --net nginx-pr oxy dineshnginx1
    • 我以webapp 为例,但这应该是容器名称,尝试server vigilant_liskov:10101; 或检查nginx 容器内的/etc/hosts 文件;-)
    • 谢谢!我仍然发现很难链接容器,我会告诉你这是怎么回事。再次感谢您的宝贵时间
    • @Dinesh 你能解决这个问题吗?我在 Azure 多容器部署中遇到了类似的问题。
    猜你喜欢
    • 2016-07-05
    • 1970-01-01
    • 2016-07-22
    • 2019-01-11
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 2018-05-31
    相关资源
    最近更新 更多