Nginx配置静态代理/静态资源映射时root与alias的区别,带前缀映射用alias

场景

Nginx搭建静态资源映射实现远程访问服务器上的图片资源:

Nginx搭建静态资源映射实现远程访问服务器上的图片资源_nginx 当作图片资源访问 博客-CSDN博客

以上在配置静态资源映射时使用的如下配置

      location / {
            root   D:/pic_old/;
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
       }

如果想实现在映射后的路径添加前缀,比如

      location /report/ {
            root   D:/pic_old/;
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
       }

原本想实现在访问

http://127.0.0.1:250/report/mark.jpg

时找到D:/pic_old/下的mark.jpg文件,发现却实现不了。

通过查看日志发现,注意这里配置的是test,不是pic_old

使用root,则Nginx 会将请求的 URL 路径与指定的根目录路径进行拼接。这意味着 URL 中的路径会映射到文件系统中的对应位置。

注:

博客:
霸道流氓气质-CSDN博客

实现

root配置

使用 root 指令时,Nginx 会将请求的 URL 路径与指定的根目录路径进行拼接。

这意味着 URL 中的路径会映射到文件系统中的对应位置。

假设我们有以下配置

        location /report/ {
            root    D:/test/;
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }

当收到的请求是

http://127.0.0.1:250/report/mark.jpg

Nginx会查找文件系统中的D:/test/report/mark.jpg并返回该文件。

alias配置

与 root 不同,alias 指令允许我们在返回文件时,重写 URL 路径的部分或全部。

这对于需要在返回文件时修改 URL 路径的情况非常有用。

假设有如下配置

        location /report/ {
            alias    D:/test/;
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }

当收到的请求是

http://127.0.0.1:250/report/mark.jpg

Nginx会查找文件系统中的D:/test/mark.jpg并返回该文件。

相关推荐
发光小北14 分钟前
关于六通道串口服务器详细讲解
运维·硬件工程
ICT系统集成阿祥24 分钟前
科普篇 | “机架、塔式、刀片”三类服务器对比
运维·服务器
无空念1 小时前
Linux - 五种常见I/O模型
linux·运维·服务器
贾贾20231 小时前
主站集中式和分布式的配电自动化系统区别在哪里?各适用于什么场所?一文详解
运维·分布式·考研·自动化·生活·能源·制造
思码逸研发效能1 小时前
在 DevOps 实践中,如何构建自动化的持续集成和持续交付(CI/CD)管道,以提高开发和测试效率?
运维·人工智能·ci/cd·自动化·研发效能·devops·效能度量
Gemma's diary2 小时前
Ubuntu开发中的问题
linux·运维·ubuntu
徊忆羽菲2 小时前
Linux下php8安装phpredis扩展的方法
linux·运维·服务器
PH_modest3 小时前
【Linux跬步积累】——thread封装
linux·运维·服务器
秋说3 小时前
本地Ubuntu轻松部署高效性能监控平台SigNoz与远程使用教程
linux·运维·ubuntu
晚秋贰拾伍3 小时前
设计模式的艺术-命令模式
运维·设计模式·运维开发·命令模式·开闭原则