我需要在nginx反向代理中缓存特定文件,但是在源服务器中,他们(开发人员)制作了许多子文件夹。我需要一些位置的正则表达式指针,以便我可以找到可缓存的文件。
我复制了这个网站的nginx配置。
nginx.conf
样本:
location /product/categoryA {
proxy_pass http://somewhere:8081;
}
location ~* ^/product/categoryA/(.+.(woff2|woff|jpg|jpeg|gif|png|ico|css|bmp|js|html|htm))$ {
proxy_hide_header X-Powered-By;
add_header X-Powered-By DCU;
proxy_cache STATIC;
proxy_pass http://somewhere:8081;
}
可缓存文件的示例:
domainabc.com/product/categoryA/desktop/css/somecssfile.css
domainabc.com/product/categoryA/desktop/runable/js/somejsfile.js
使用上述位置,将找不到那些.css
和.js
文件。
我需要有关正则表达式的位置的帮助,以便nginx可以找到这些文件,而无需对子文件夹进行硬编码(../desktop/css, ../desktop/runable/js )
我仍然需要"/product/categoryX",因为还有其他类别,但具有不同的源服务器。
谢谢。
由于开头^
,以下正则表达式^/product/categoryA/(.+.woff2|woff|jpg|jpeg|gif|png|ico|css|bmp|js|html|htm))$
只会捕获行或字符串开头以/product
开头的内容。如果删除^
它应该捕获所需的字符串。
同样不是$
意味着它是行或字符串的末尾,并且在它之后没有,所以如果你在.css
或.js
之后有东西,可能不会也抓住它们。