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

相关推荐
半方白31 分钟前
通过 ks.cfg 文件实现 openEuler 系统自动部署
运维·自动化运维
moppol34 分钟前
容器化 vs 虚拟机:什么时候该用 Docker?什么时候必须用 VM?
运维·docker·容器
ZPC821040 分钟前
ubuntu 6.8.0 安装xenomai3.3
linux·运维·ubuntu
一梦浮华2 小时前
自学嵌入式 day30 IPC:进程间通信
linux·运维·服务器
精英的英2 小时前
在Ubuntu 24.04主机上创建Ubuntu 14.04编译环境的完整指南
linux·运维·ubuntu
求索小沈2 小时前
ubuntu22.04安装anaconda
linux·运维·服务器
斯普信专业组2 小时前
K8s环境下基于Nginx WebDAV与TLS/SSL的文件上传下载部署指南
nginx·kubernetes·ssl
JAVA拾贝2 小时前
Prometheus+Grafana运维监控并实现钉钉告警
运维·钉钉·grafana·prometheus·运维监控
数通Dinner2 小时前
异步Websocket构建聊天室
运维·网络·websocket·网络协议·信息与通信
云动雨颤3 小时前
Python 自动化办公神器|一键转换所有文档为 PDF
运维·python