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分别映射-七秒鱼笔记

相关推荐
乱蜂朝王18 小时前
Ubuntu 20.04安装CUDA 11.8
linux·运维·ubuntu
Lw老王要学习20 小时前
Windows基础篇第一章_01VMware虚拟机安装window10
运维·windows·虚拟机
yuanmenghao20 小时前
车载Linux 系统问题定位方法论与实战系列 - 车载 Linux 平台问题定位规范
linux·运维·服务器·网络·c++
qq_589568101 天前
centos6.8镜像源yum install不成功,无法通过镜像源下载的解决方式
linux·运维·centos
weixin_516023071 天前
linux下fcitx5拼音的安装
linux·运维·服务器
hunter14501 天前
Linux 进程与计划任务
linux·运维·服务器
楼田莉子1 天前
Linux学习之磁盘与Ext系列文件
linux·运维·服务器·c语言·学习
陌上花开缓缓归以1 天前
linux 怎么模拟系统panic重启
linux·运维·服务器
月白风清江有声1 天前
vscode使用git
linux·运维·服务器
haluhalu.1 天前
深入理解Linux线程机制:线程概念,内存管理
java·linux·运维