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

相关推荐
unclecss13 小时前
从 0 到 1 手写 Linux 调试器:ptrace 系统调用与断点原理
linux·运维·服务器·c语言·ptrace
青靴13 小时前
从单机到集群:Docker 数据卷在高可用日志平台中的实战指南
运维·docker·容器
月球挖掘机13 小时前
jumpserver报错:502 badgateway --删除回放视频
运维·jumpserver
last demo13 小时前
fail2ban实验
linux·运维·服务器·网络
源梦想13 小时前
火柴人龙拳网页格斗小游戏Linux部署演示
linux·运维·服务器
Bruce_Liuxiaowei14 小时前
Windows安全事件4625分析:检测登录失败与防范暴力破解
运维·windows·安全·网络安全
q***876014 小时前
Nginx之rewrite重写功能
数据库·mysql·nginx
庚昀◟14 小时前
Wsl系统下使用Ubuntu下载官网Nginx并加入系统服务
linux·nginx·ubuntu
weixin_4624462315 小时前
【原创实践】安装与配置 lua-cjson 在宝塔 Nginx 上
nginx·junit·lua
我科绝伦(Huanhuan Zhou)15 小时前
MySQL运维必备:24个核心监控参数(含查询语句+异常处理)
运维·数据库·mysql