我正在尝试将以下Nginx反向代理配置烘焙到docker映像中:
-v nginx-data:/etc/nginx/conf.d/
我目前正将其放入一个卷中,并按如下所示进行映射:
FROM nginx
COPY gogs.conf /etc/nginx/conf.d/gogs.conf
那行得通,启动容器时它充当反向代理,但是当我像这样烘烤它时:
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映像时安装的位置,所以它应该可以工作...
有关如何解决此问题的任何想法?
答案 0 :(得分:1)
server_name
块中的 server
是203.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