Nginx静态文件服务root and alias

root 指令:

  • root 指令用于指定一个目录,该目录将成为 URI 中指定路径的根目录。

  • 当使用 root 时,Nginx 会将 URI 的路径直接附加到 root 指定的目录上,然后尝试查找对应的文件。

  • 例如:

location /static {
root /var/www;
}
如果请求 URI 是 /static/file.txt,Nginx 将在文件系统中查找 /var/www/static/file.txt。

 
alias 指令:

  • alias 指令也用于指定一个目录,但它将 URI 的一部分映射到文件系统中的不同位置。

  • alias 将匹配 URI 中指定的部分,并将其替换为指定的目录。

  • 例如:

location /static {
alias /var/www/static_files;
}
如果请求 URI 是 /static/file.txt,Nginx 将在文件系统中查找 /var/www/static_files/file.txt。

 
总结区别:

  • root 用于将整个 URI 路径追加到指定的目录上。
  • alias 用于替换 URI 中的部分,并将其映射到指定的目录。

选择使用"root"还是"alias"取决于你的需求和目录结构。通常,alias 更灵活,适用于需要在 URI 中去掉部分路径的情况。

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
nginx中,rootalias都用于指定静态文件的根目录,但它们的用法和效果略有不同。 1. rootnginx配置文件中,root指令用于指定静态文件的根目录。例如: ``` server { listen 80; server_name example.com; root /var/www/example.com; } ``` 这里的root指定了example.com域名下静态文件的根目录为/var/www/example.com。当用户访问http://example.com时,nginx会在/var/www/example.com目录中寻找相应的静态文件,如index.html。 需要注意的是,root指令所指定的路径是相对于nginx配置文件的路径。因此,如果nginx配置文件位于/etc/nginx目录下,而静态文件的根目录位于/var/www/example.com目录下,则root指令应写成: ``` root /../../var/www/example.com; ``` 其中的”../”表示向上一级目录。 2. alias alias指令也用于指定静态文件的根目录,但它的用法和效果略有不同。alias指令可以将请求的URL路径映射到服务器上的实际文件路径。例如: ``` server { listen 80; server_name example.com; location /img/ { alias /var/www/example.com/static/img/; } } ``` 这里的alias指定了URL路径/img/映射到/var/www/example.com/static/img/目录下的静态文件。当用户访问http://example.com/img/logo.png时,nginx会在/var/www/example.com/static/img/目录下寻找相应的静态文件,如logo.png。 需要注意的是,alias指令所指定的路径是绝对路径。因此,如果alias指令所指定的路径是/var/www/example.com/static/img/,则在nginx配置文件中应写成: ``` alias /var/www/example.com/static/img/; ``` 而不是: ``` alias ../../var/www/example.com/static/img/; ``` 因为alias指令不会将路径解析为相对路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值