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并返回该文件。

相关推荐
C++忠实粉丝33 分钟前
Linux环境基础开发工具使用(2)
linux·运维·服务器
康熙38bdc1 小时前
Linux 环境变量
linux·运维·服务器
存储服务专家StorageExpert1 小时前
DELL SC compellent存储的四种访问方式
运维·服务器·存储维护·emc存储
大G哥2 小时前
记一次K8S 环境应用nginx stable-alpine 解析内部域名失败排查思路
运维·nginx·云原生·容器·kubernetes
妍妍的宝贝2 小时前
k8s 中微服务之 MetailLB 搭配 ingress-nginx 实现七层负载
nginx·微服务·kubernetes
醉颜凉2 小时前
银河麒麟桌面操作系统修改默认Shell为Bash
运维·服务器·开发语言·bash·kylin·国产化·银河麒麟操作系统
苦逼IT运维3 小时前
YUM 源与 APT 源的详解及使用指南
linux·运维·ubuntu·centos·devops
仍有未知等待探索3 小时前
Linux 传输层UDP
linux·运维·udp
zeruns8024 小时前
如何搭建自己的域名邮箱服务器?Poste.io邮箱服务器搭建教程,Linux+Docker搭建邮件服务器的教程
linux·运维·服务器·docker·网站
北城青4 小时前
WebRTC Connection Negotiate解决
运维·服务器·webrtc