gpt4 book ai didi

docker - 如何将位置映射到 Nginx 中的上游服务器?

转载 作者:行者123 更新时间:2023-12-02 18:06:09 25 4
gpt4 key购买 nike

我有几个 Docker 容器充当桥接网络上的 Web 服务器。我想使用 Nginx 作为代理,在桥接网络之外公开服务(Web)并使用服务器端包含嵌入来自其他服务(即 wiki)的内容。

长话短说,我正在尝试使用下面的配置,但我的位置无法正常工作。 / location 工作正常,但是当我添加另一个位置(例如 /wiki )或更改 时/更具体的东西(例如 /web )我从 Nginx 收到一条消息,分别说“无法获取/wiki”或“无法获取/web”:

events { 
worker_connections 1024;
}

http {
upstream wiki {
server wiki:3000;
}

upstream web {
server web:3000;
}

server {
ssi on;

location = /wiki {
proxy_pass http://wiki;
}

location = / {
proxy_pass http://web;
}
}
}

我已经附加到 Nginx 容器并验证我可以使用 CURL 访问其他容器 - 它们似乎工作正常。

我还阅读了 Nginx 陷阱并知道使用主机名(wiki、web)并不理想,但我不知道提前 IP 地址,并试图通过告诉 docker-compose 解决任何 DNS 问题nginx 容器依赖于 web 和 wiki。

有任何想法吗?

最佳答案

您必须转proxy_pass http://wiki;proxy_pass http://wiki/; .

据我所知,Nginx 将采用两种不同的方式,在 uri 的末尾带有/不带有反斜杠。您可能会发现 more details about proxy_pass directive在 nginx.org 上。
在您的情况下,反斜杠( / )作为传递给服务器的 uri 是必不可少的。您已经收到错误消息“无法获取/wiki”。其实这个错误信息的意思是没有/wikiserver wiki:3000 ,不在 Nginx 范围内。
更好地了解带有/不带有 uri 的 proxy_pass 指令会对您有很大帮助。
我希望这会有所帮助。

关于docker - 如何将位置映射到 Nginx 中的上游服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54066831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com