0

nginx-proxy广泛依赖于 Host 标头的使用。但是,大多数浏览器不允许您手动设置 Host 标头。如果你尝试,你会得到错误Refused to set unsafe header "Host"

那么我应该如何从浏览器向 nginx-proxy 发送请求呢?

4

1 回答 1

0

在这里达成了对这个问题的解决方案。

tl;dr 是您只能在后端拥有一个具有 VIRTUAL_HOST 变量的 docker 服务,并且它必须与前端正在使用的域相对应。

如果您有多个后端服务,因此有多个 VIRTUAL_HOSTS,您将需要在前端动态设置 HOST 标头,以便 nginx-proxy 知道将您的请求路由到哪里。但是,正如我们现在所知,这是不可能的,因为浏览器不允许您动态设置 Host 标头

我的解决方案是将 nginx-proxy 替换为 vanilla nginx 配置,并依赖 URL 命名空间来进行服务路由,而不是尝试设置 Host 标头。

于 2019-04-05T13:10:30.347 回答