我需要设置nginx代理容器,以便用我的应用程序将请求转发到容器。我使用以下命令启动容器:
# 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:
# 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容器代理请求。
发布于 2018-10-25 14:04:04
对于app容器,需要具有域名的VIRTUAL_HOST env将nginx请求允许到app容器。此方法不需要网络设置或端口转发。下面是我提出的工作设置:
# 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发布于 2018-10-25 01:34:05
它看起来你的应用程序运行在2368端口上,用户不需要直接访问这个端口。因此,不需要公开app容器的端口。
您在创建网桥网络并在其上创建容器时是正确的。
您需要从app容器中删除端口映射,并将nginx-proxy容器的端口映射从80:8080更改为80:80。
您还需要将nginx-proxy设置为从端口80到app:2386的代理请求。
这样,用户在主机Docker运行时点击端口80将被代理到您的应用程序中。
https://stackoverflow.com/questions/52979710
复制相似问题