Nginx Docker代理容器不重定向?

时间:2018-10-06 13:51:09

标签: bash shell docker nginx dockerfile

我正在尝试将以下Nginx反向代理配置烘焙到docker映像中:

-v nginx-data:/etc/nginx/conf.d/

我目前正将其放入一个卷中,并按如下所示进行映射:

  FROM nginx
  COPY gogs.conf /etc/nginx/conf.d/gogs.conf

那行得通,启动容器时它充当反向代理,但是当我像这样烘烤它时:

Dockerfile

docker run --name gogs-nginx-container -d gogs-nginx

从这样的图像启动容器:

http://172.17.0.3/

最后在分配给它的IP地址203.0.113.1:3000上访问它,我只是看到“欢迎使用Nginx”页面,而不是看到它,并且它没有重定向到docker logs gogs-nginx-container

运行Service Fabric Local Cluster Manager时,它仅告诉我我尝试与响应代码(即304)一起连接。我将配置文件复制到运行香草nginx映像时安装的位置,所以它应该可以工作...

有关如何解决此问题的任何想法?

2 个答案:

答案 0 :(得分:1)

您的server_name块中的

server203.0.113.2,您正尝试访问172.17.0.3。显然,它们不匹配,Nginx正在使用另一个server块(可能是default)来满足请求。

如果您能够坚持使用特定的IP,则可以在server_name中使用IP,并且可以用于某些测试目的。

对于真实的网站,server_name应该包含您的网站所使用的域名。例如,

server_name 203.0.113.2 gogs.local gogs.com;

,然后您应该利用DNS在域名和IP之间建立关系。以最简单的形式,您计算机上的hosts文件可以为gogs.local提供IP。

答案 1 :(得分:0)

Nginx对正在运行的IP地址“敏感”。在我的配置中,我具有server_name 203.0.113.2;设置,因此容器已启动,它必须在该IP地址上启动,否则将不会触发代理配置。因此,此命令可以达到目的:

docker run --name gogs-nginx-proxy --net mk1net --ip 203.0.113.2 -d gogs-nginx