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

相关推荐
果壳~17 小时前
Docker镜像离线迁移:从下载到本地部署完整实战指南
运维·docker·容器
feng68_17 小时前
Web服务基础理论
linux·运维·服务器·web服务
打码人的日常分享17 小时前
双碳智慧园区建设方案(PPT)
大数据·运维·网络·云计算·制造
许愿OvO18 小时前
Tomcat部署与Nginx整合实战
运维·nginx·tomcat
柳鲲鹏18 小时前
LINUX下载编译libosmscout
linux·运维·服务器
学不完的18 小时前
Nginx
linux·运维·nginx·运维开发
Joren的学习记录18 小时前
【Linux运维大神系列】k8s项目部署实战
linux·运维·kubernetes
杰克崔18 小时前
android的lmkd的实现及代码分析
android·linux·运维·服务器·车载系统
BullSmall18 小时前
从2026年春晚 详细分析未来IT行业的发展
linux·运维·服务器·数据库
星融元asterfusion18 小时前
打破“黑盒”:RoCE小工具为RDMA网络运维带来可视化曙光
运维·rdma·会话追踪