É possível secar um monte de blocos de localização
no Nginx com a mesma configuração exata, apenas rotas diferentes? Dê uma olhada no seguinte snippet do meu Nginx .conf
, por exemplo:
location / {
proxy_pass http://127.0.0.1:3000;
charset UTF-8;
proxy_http_version 1.1;
}
location ~ /android-chrome-192x192.png {
proxy_pass http://127.0.0.1:3000/static/brand/favicons/android-chrome-192x192.png;
expires 365d;
add_header Pragma public;
add_header Cache-Control "public";
}
location = /android-chrome-512x512.png {
proxy_pass http://127.0.0.1:3000/static/brand/favicons/android-chrome-512x512.png;
expires 365d;
add_header Pragma public;
add_header Cache-Control "public";
}
location ~* \.(?:ico|svg|woff|woff2|ttf|otf|css|js|gif|jpe?g|png)$ {
proxy_pass http://127.0.0.1:3000;
expires 365d;
add_header Pragma public;
add_header Cache-Control "public";
}
Aqui, tenho pelo menos dois locais
blocos com os mesmos valores para expira
, add_header Pragma
e add_header Cache-Control
. Na realidade, tenho pelo menos 12-15 desses blocos para vários arquivos estáticos.
Existe alguma maneira de reduzir a quantidade de código redundante aqui? Digamos, ter um único bloco com esses valores e fazer referência a esse bloco único em cada bloco de localização
? Eu até tentei usar regex para apenas reduzir o número de blocos de localização
, mas isso gerou o seguinte erro:
"proxy_pass" não pode ter parte URI no local fornecido por regular expressão ou dentro do local nomeado
Alguma solução alternativa?
Попробуйте следующее:
location ^~ /android-chrome- {
proxy_pass http://127.0.0.1:3000/static/brand/favicons/android-chrome-;
expires 365d;
add_header Pragma public;
add_header Cache-Control "public";
}