目前我正在用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”的值。