【问题标题】:Nginx docker proxy container not redirecting?Nginx docker代理容器不重定向?
【发布时间】:2019-03-11 19:04:21
【问题描述】:

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

    server {
        listen 80;
        server_name 203.0.113.2;

        proxy_set_header X-Real-IP  $remote_addr; # pass on real client IP

        location / {
            proxy_pass http://203.0.113.1:3000;
        }
    }

我目前只是将它放入一个卷中并像这样映射它:

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

这很有效,它在启动时容器作为反向代理执行,但是当我像这样烘烤它时:

Dockerfile

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

像这样从镜像启动容器:

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

最后在其分配的 IP 地址http://172.17.0.3/ 访问它,我只是得到“欢迎来到 Nginx”页面,而不是看到它并没有重定向到 203.0.113.1:3000。

在运行docker logs gogs-nginx-container 时,它只告诉我我尝试连接响应代码,即 304s。我正在将配置复制到我在运行 vanilla nginx 映像时安装它的同一位置,所以它应该可以工作......

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

【问题讨论】:

  • 在 /etc/nginx/nginx.conf 中引用的任何其他文件中是否有任何其他服务器块?
  • IIUC 当我执行 COPY gogs.conf /etc/nginx/conf.d/gogs.conf 时,这与执行 -v nginx-data:/etc/nginx/conf.d/ 相同,因为 nginx-data 卷包含相同的 gogs.conf 文件,所以最终使用 docker 构建的图像文件应该等同于以挂载卷启动的容器...
  • 像您发布的单个服务器块只是完整 Nginx conf 的一部分,并且由于它没有处理您的请求,因此我怀疑还有另一个服务器块硬编码或通过其他地方的包含引用在您的配置中,必须改为处理请求
  • 好吧,我可以理解为什么你的第二个例子不起作用,但我不明白为什么第一个例子起作用。您的容器是否总是获得 IP 203.0.113.2?
  • 是的 - 我设置了一个 docker 本地网络,以便容器始终获得相同的 IP。

标签: bash shell docker nginx dockerfile


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    您的server 块中的server_name 是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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-27
      • 2021-05-04
      • 1970-01-01
      • 1970-01-01
      • 2018-03-20
      • 2017-05-07
      • 1970-01-01
      • 2019-05-04
      相关资源
      最近更新 更多