如何在 nginx 中根据服务器名称将请求发送到代理传递 url?

如何在 nginx 中根据服务器名称将请求发送到代理传递 url?

我有子域名 a.domain.com 和 b.domain.com。以下是我的配置:

server {
 listen 80;
 server_name a.domain.com b.domain.com;

 location / {
   .
   .
   .
   proxy_pass http://example.com/$server_name/;
 }
}

这给出了类似的错误

“没有定义解析器来解析http://example.com/“……”

是否可以根据服务器名称发送代理传递 URL 或者我遗漏了什么?

答案1

您正在尝试将请求代理到 example.com。但您尚未将 example.com 定义为upstream,因此 nginx 将其视为要查找和连接的主机名。但你没有 DNSresolver在任何地方定义。

要解决此问题,请执行以下两项操作之一。

相关内容