我想了解为什么会发生这种情况。当我使用不带正则表达式的 proxy_pass 时,一切都运行正常,DNS 得到解析,等等。
location /images/ {
proxy_pass http://sfs-filer:8888;
proxy_set_header Host $host;
}
但是,一旦我添加正则表达式,它就会开始抛出错误。
[错误] 29#29:*442 没有定义解析器来解析 sfs-filer,客户端:172.18.0.1,服务器:,请求:“GET /9395123a-39bd-4951-acd9-e759fae2e7f4.webp HTTP/1.1”,主机:“localhost”
location ~ ([a-zA-Z0-9-]+\.(jpg|jpeg|png|gif|webp|bmp|avif))$ {
proxy_pass http://sfs-filer:8888/$1;
proxy_set_header Host $host;
}
请注意,在 proxy_pass 中我根本没有更改域,它保持 1 比 1,如第一个示例所示。这怎么可能呢?为什么解析器依赖于正则表达式?
是的,我可以添加resolver 127.0.0.11 valid=10s;
,而且会起作用。但它的本质对我来说绝对是个谜。