如何正确地将子域名代理到另一台服务器?

如何正确地将子域名代理到另一台服务器?

在迁移过程中,我无法将一台服务器上的 *.domain1.com 重定向到另一台服务器上的 *.domain2.com。有人能告诉我如何设置proxy_pass才能做到这一点吗?以下方法似乎不起作用:

    server {
        listen 80;
        server_name ~^(?<subdomain>.+)\.domain1\.com$;

        location / {
            proxy_pass http://$subdomain.domain2.com;
        }
    }

在日志中我得到:*1 no resolver defined to resolve subdomain.domain2.com, client: 72.***.***.*9, server: ~^(?<subdomain>.+)\.domain1\.com$, request: "GET /index HTTP/1.1", host: "subdomain.domain1.com"

任何帮助,将不胜感激!

答案1

您需要在位置部分添加解析器指令。
如果您有自己的 DNS 服务器,您可以让它指向它,否则可能是 8.8.8.8(Google 服务器)。
有关更多信息,请访问官方文档

server {
    listen 80;
    server_name ~^(?<subdomain>.+)\.domain1\.com$;

    location / {
        resolver ip.of.your.resolver;
        proxy_pass http://$subdomain.domain2.com;
    }
}

相关内容