首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >码头连接集装箱

问码头连接集装箱
EN

Stack Overflow用户
提问于 2018-10-25 00:33:57
回答 2查看 142关注 0票数 0

我需要设置nginx代理容器,以便用我的应用程序将请求转发到容器。我使用以下命令启动容器:

代码语言:javascript
复制
# app
docker run -d -p 8080:2368 \
  --name app \
  app

# nginx
docker run -d -p 80:8080 \
  --name nginx-proxy \
  jwilder/nginx-proxy

但是当我试图访问服务器上的端口80时,我得到了ERR_CONNECTION_REFUSED。很明显,nginx容器正在转发,而不是我想要的端口,因为在服务器端口8080上,我可以访问应用程序。我试着像这样使用network:

代码语言:javascript
复制
# network
docker network create -d bridge net

# app
docker run -d -p 8080:2368 \
  --name app \
  --network net \
  app

# nginx
docker run -d -p 80:8080 \
  --name nginx-proxy \
  --network net \
  jwilder/nginx-proxy

但结果似乎是一样的。我需要了解如何从服务器端口80向我的应用程序发出nginx容器代理请求。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-25 14:04:04

对于app容器,需要具有域名的VIRTUAL_HOST env将nginx请求允许到app容器。此方法不需要网络设置或端口转发。下面是我提出的工作设置:

代码语言:javascript
复制
# app
docker run -d \
  --name app \
  -e VIRTUAL_HOST=mydomain.com \
  app

# nginx
docker run -d -p 80:80 \
  --name nginx-proxy \
  jwilder/nginx-proxy
票数 0
EN

Stack Overflow用户

发布于 2018-10-25 01:34:05

它看起来你的应用程序运行在2368端口上,用户不需要直接访问这个端口。因此,不需要公开app容器的端口。

您在创建网桥网络并在其上创建容器时是正确的。

您需要从app容器中删除端口映射,并将nginx-proxy容器的端口映射从80:8080更改为80:80。

您还需要将nginx-proxy设置为从端口80到app:2386的代理请求。

这样,用户在主机Docker运行时点击端口80将被代理到您的应用程序中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52979710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档