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

相关推荐
刚入门的大一新生4 分钟前
Linux-进程间通信2
linux·运维·服务器
Yana.nice18 分钟前
清除密码历史记录,解决pam安全策略密码无法复用问题
运维
海宇服务25 分钟前
零信任架构实战:基于海宇风控经营异常预警构建自动化央企物资采购供应商资信排查网关
运维·人工智能·架构·自动化
开开心心就好1 小时前
发票信息录入太麻烦?离线工具一键转表格
运维·服务器·前端·pdf·ocr·maven·intellij-idea
吴声子夜歌1 小时前
Docker入门与实战——热门镜像介绍
运维·docker·容器
方便面不加香菜1 小时前
容器虚拟化基础--CGroups资源控制
运维·docker·容器
山东孙燕姿1 小时前
维修工单的转派与协同:两个人一起上
大数据·运维·服务器·网络·人工智能
AI你一生一世2 小时前
Cloud in a Bottle:把自托管从“运维苦役”变成“可交付的私有云”
运维·部署·状态管理·容器编排·私有云·备份恢复·自托管
Madison-No72 小时前
Jenkins持续集成
运维·ci/cd·jenkins