Nginx的:可能在位置块dynamicparsingDNS?

目前我正在用Kubernetes使用Nginx。 在我的Nginx conf文件中,我有以下代理传递:

location ~ /myPath/([\w-]+)/resources { rewrite ^/myPath/([\w-]+)/resources/(.*)$ /myNewPath/$1/resources/$2 break; proxy_pass http://$1; } 

目前Nginx抱怨说,在运行时无法parsing$ 1来执行proxy_pass(尽pipe我们有我们的SkyDNSparsing器指定,即parsing器10.250.0.5有效= 5秒)。

我们需要dynamic地完成这个工作,因为在Nginx启动时,$ 1的值可能不知道,必须在请求时解决。

Nginx是否能够dynamic地做这个dynamic的DNSparsing?

是的,Nginx 可以做 dynamic的parsing 。

但是,您的正则expression式可能有缺陷。 当与PCRE引擎一起使用时, ([\w-]+)的正则expression式将会/不匹配一个点字符。 你可以在https://regex101.com/上testing

根据PCRE文件 :

“单词”字符是下划线或任何字母或数字。

所以你的正则expression式将适用于像“短主机名”,但不是“fullyqualified.example.com”的值。