Jos*_*nio 5 nginx cache reverse-proxy static-content
我使用 Nginx 作为多个服务器中多个应用程序的反向代理,并且尝试将通用缓存指令添加到每个应用程序的静态文件中。
我原来的配置是这样的:
location /app1{
...
proxy_pass http://127.0.0.1:8081/app1;
}
location /app2{
...
proxy_pass http://127.0.0.1:8082/app2;
}
...
Run Code Online (Sandbox Code Playgroud)
要添加静态文件指令,我可以向每个位置添加嵌套位置,如下所示:
location /app1{
...
proxy_pass http://127.0.0.1:8081/app1;
location ~* \.(css|js|ico|gif|jpg|jpeg|png)$ {
expires 1d;
...
proxy_pass http://127.0.0.1:8081;
}
}
location /app2{
...
proxy_pass http://127.0.0.1:8082/app2;
location ~* \.(css|js|ico|gif|jpg|jpeg|png)$ {
expires 1d;
...
proxy_pass http://127.0.0.1:8082;
}
}
Run Code Online (Sandbox Code Playgroud)
由于我有大约 30 个应用程序,因此我尝试将代码简化为如下所示:
location /app1{
...
proxy_pass http://127.0.0.1:8081/app1;
include static_file_config.conf;
}
location /app2{
...
proxy_pass http://127.0.0.1:8081/app2;
include static_file_config.conf;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法可以简化代码,这样我就不会以 30 个相同的静态文件位置结束?
请注意,每个应用程序都有自己的静态文件。
也许您可以使用正则表达式将特定的 URI 与上游应用程序匹配,而不是使用许多位置:
location ~ /(app)(\d+) {
proxy_pass http://127.0.0.1:808$2/$1$2;
include static_file_config.conf;
}
Run Code Online (Sandbox Code Playgroud)
您可以在这里查看它是如何工作的:https://regex101.com/r/sM3eS9/1
归档时间: |
|
查看次数: |
9934 次 |
最近记录: |