首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nginx动态proxy_pass变量到.local区域

Nginx动态proxy_pass变量到.local区域
EN

Stack Overflow用户
提问于 2016-09-26 15:18:46
回答 1查看 855关注 0票数 6

因此,我想在由Avahi控制的.local区域对我的服务器上的迷航机进行动态.local。我有一个nginx虚拟主机配置:

代码语言:javascript
复制
server {
        listen 80;
        server_name     ~^(?<subdomain>.+)\.example\.com$;

        location / {

                resolver 127.0.0.1 valid=30s;

                proxy_set_header            Host $http_host;
                proxy_set_header            X-Real-IP $remote_addr;
                proxy_set_header            X-Forwarded-Proto $scheme;
                proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header            Host $host;

                proxy_pass                  http://$subdomain-example.local;
                proxy_connect_timeout       600;
                proxy_send_timeout          600;
                proxy_read_timeout          600;

                send_timeout                600;

        }
    }

Nginx在/var/log/nginx/error.log中返回了一个错误:

代码语言:javascript
复制
2016/09/26 18:03:34 [error] 24401#24401: 
*1 no resolver defined to resolve test-example.local, 
client: 192.168.1.101, 
server: ~^(?<subdomain>.+)\.example\.com$, 
request: "GET / HTTP/1.1", 
host: "test.example.com"

但是,如果我手动地将$subdomain设置为“测试”,例如,它是工作,并通过测试-示例本地机器,这是我真正想要的。

如何使它真正充满活力?我应该在vhost配置中更改什么?

EN

回答 1

Stack Overflow用户

发布于 2022-01-08 21:01:34

当NGINX启动或重新加载其配置时,它会查询DNS服务器来解析域名。NGINX从OS配置文件/etc/rupv.conf中选择DNS服务器。当使用变量在proxy_pass指令中指定域名时,NGINX不引用/etc/drv.conf。

您可以使用proxy_pass指令中的IP地址代替域名。

有关更多细节,请阅读https://www.nginx.com/blog/dns-service-discovery-nginx-plus

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39706569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档