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

相关推荐
一位赵20 分钟前
小练2 选择题
linux·运维·windows
qq_3129201123 分钟前
Nginx+Keepalived双主架构:消除单点故障的最佳实践
运维·nginx·架构
LucDelton1 小时前
Java 读取无限量文件读取的思路
java·运维·网络
ん贤1 小时前
nginx语法
nginx
Lw老王要学习1 小时前
CentOS 7.9达梦数据库安装全流程解析
linux·运维·数据库·centos·达梦
蓝队云计算2 小时前
蓝队云部署OpenClaw深度指南:避坑、优化与安全配置,从能用做到好用
运维·安全·云计算
Kaede62 小时前
提示dns服务器未响应,需要做哪些事?
运维·服务器
CRUD酱2 小时前
CentOS的yum仓库失效问题解决(换镜像源)
linux·运维·服务器·centos
zly35002 小时前
VMware vCenter Converter Standalone 转换Linux系统,出现两个磁盘的处理
linux·运维·服务器
珠海西格2 小时前
1MW光伏项目“四可”装置改造:逆变器兼容性评估方法详解
大数据·运维·服务器·云计算·能源