【发布时间】:2021-02-13 21:33:50
【问题描述】:
我有 2 条不同的 dns 记录。一个用于指向公共 IP 地址(即 93.184.216.34)的domain.com,另一个用于指向本地 IP 地址(即 10.0.0.2)的local.domain.com,供同一网络上的计算机使用。
我有以下配置来代理_将本地子域传递给似乎可以工作的裸域:
server {
listen 80;
listen [::]:443 ssl;
listen 443 ssl;
# ssl config here
server_name local.domain.com;
location / {
proxy_pass $scheme://127.0.0.1/;
set $non_local_host domain.com;
proxy_set_header Host $non_local_host;
proxy_redirect http://$non_local_host/ http://$host/;
proxy_redirect https://$non_local_host/ https://$host/;
}
}
但我还需要子域才能工作。 foo.local.domain.com 应该代理到foo.domain.com,bar.baz.local.domain.com 应该代理到bar.baz.domain.com
我了解我需要复制上述服务器块。将server_name 更改为*.local.domain.com,但不确定如何正确设置$not_local_host 以指向正确的子域。
最接近的类似问题是:nginx sub-subdomain wildcard,但这是相反的方向(并且从未回答),而这个答案是对How can i pass subdomain as proxy_pass value in nginx?,但它针对不同的域(而不是子域),它是一些神奇的正则表达式我不明白。谢谢。
【问题讨论】:
标签: nginx proxypass wildcard-subdomain