0
点赞
收藏
分享

微信扫一扫

牛客周赛 Round 54

洒在心头的阳光 2024-08-09 阅读 14

nginx root 代理怎么配置都是404?

先来了解nginx root和alias的用法与区别。

root 指令

root 指令用于定义请求的根目录路径。Nginx 会将请求的 URI 附加到 root 指令指定的路径后面,以形成最终的文件系统路径。这意味着,如果你希望 Nginx 根据请求的 URI 直接映射到服务器上的文件,那么 root 指令是一个很好的选择。

server {  
    listen 80;  
    server_name example.com;  
  
    location /images/ {  
        root /data;  
    }  
}

这个例子中,如果客户端请求 http://example.com/images/logo.png,Nginx 会将 /images/logo.png 附加到 /data 后面,最终访问的文件路径是 /data/images/logo.png

alias 指令

alias 指令则用于修改 location 块中请求的 URI。与 root 不同,Nginx 不会将请求的 URI 附加到 alias 指定的路径上,而是直接使用该路径(或在该路径基础上添加 URI 中 alias 之后的部分)来定位文件。这在你希望请求的 URI 与文件系统的实际路径不完全匹配时非常有用。

server {  
    listen 80;  
    server_name example.com;  
  
    location /images/ {  
        alias /data/images/;  
    }  
}

但是,上面的配置实际上并不按预期工作,因为 alias 通常不会直接使用 /data/ 来替换 /images/,而是需要一个更精确的处理方式。如果你想要将 /images/ 下的所有请求映射到 /data/images/ 目录,你应该这样配置。

现在,你懂了吗?

举报

相关推荐

0 条评论