我需要在nginx反向代理中缓存特定文件,但是在原始服务器中,它们(开发人员)创建了许多子文件夹。我需要一些正则表达式指针来定位,以便可以找到可缓存文件。
我复制了此site's 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 ”,因为还有其他类别,但是源服务器不同。
谢谢。
答案 0 :(得分:0)
由于开头为^/product/categoryA/(.+\.woff2|woff|jpg|jpeg|gif|png|ico|css|bmp|js|html|htm))$
的以下正则表达式^
仅会捕获行或字符串开头以/product
开头的内容。如果删除^
,它将捕获您想要的字符串。
同样,不是$
表示它是行或字符串的结尾,并且后面没有空格,因此如果您在.css
或.js
之后有其他内容,可能无法捕获它们也是