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/
目录,你应该这样配置。
现在,你懂了吗?