nginx将一个路径下的多种url分别映射

背景

nginx如何将/static/下的images或script或css路径,分别映射到/data下的images、scripts或styles。

分析

可以在nginx的配置文件中添加以下配置,来实现url以/static/开头时,根据不同的子路径映射到不同的本地文件路径:

location /static/ {

root /data/;

if ($request_uri ~* "^/static/(images|scripts|styles)/") {

set subdir 1;

rewrite ^/static/(images|scripts|styles)/(.*) /subdir/$2 break;

}

}

其中,/static/是url路径,/data/是本地文件路径,root指令指定了url路径对应的本地文件路径。if语句判断url路径是否以/static/images/、/static/scripts/或/static/styles/开头,如果是,则将子路径保存到变量subdir中。rewrite指令将url路径中的子路径替换成变量subdir中保存的值,从而实现了不同子路径对应不同的本地文件路径。

需要注意的是,if语句会影响nginx的性能,因此建议使用map指令或者多个location指令来替代if语句。另外,建议在配置文件中添加访问控制,防止/static/目录下的文件被未经授权的访问者获取。

总结

来源: nginx将一个路径下的多种url分别映射-七秒鱼笔记

相关推荐
@游子4 分钟前
内网渗透笔记-Day5
运维·服务器
记得记得就15131 分钟前
【Nginx 性能优化与防盗链】
运维·nginx·性能优化
Yawesh_best34 分钟前
告别系统壁垒!WSL+cpolar 让跨平台开发效率翻倍
运维·服务器·数据库·笔记·web安全
roman_日积跬步-终至千里38 分钟前
【Docker】Docker Stop 后到底发生了什么?——从信号机制到优雅停机
运维·docker·容器
喵手41 分钟前
云端智变:基于 DevUI 与 MateChat 打造下一代云原生智能运维中台实战教学!
运维·云原生·devui·matechat
小五传输1 小时前
常用的文件摆渡系统:让数据安全高效跨越网络界限
大数据·运维·安全
2501_921939262 小时前
11.26LAMP-LNMP-分离部署
运维
牛哥带你学代码2 小时前
服务器运行常用指令
运维·服务器
这儿有一堆花3 小时前
Kali Linux:探测存活到挖掘漏洞
linux·运维·服务器