发布网友 发布时间:2022-04-21 22:16
共1个回答
热心网友 时间:2023-07-08 22:33
详细区别见例子:
location /I {
alias /var/www/html/images/;
}
在这个location配置段中,如果URL请求“/i/logo.gif”,那么nginx将会在服务器上查找“/var/www/html/images/logo.gif”文件,也就是说请求的URL中location后面的部分会被追加到alias指定的目录后面,而location后面的”/i”路径将会被自动丢弃,类似的例子还有:
location ~ ^/download/(.*)$ {
alias /home/webdata/www/$1
}
在这个例子中,如何URL请求“/download/ebook.tar.gz”,那么nginx将会在服务器上请求“/home/webdata/www/ebook.tar.gz”文件。
在nginx中,alias命令与root命令所实现的功能有几分相似,但是也有差别,例如:
location /i {
root /var/www/html/images/;
}
在这个location配置段中,如果URL请求“/i/logo.gif”,那么nginx将会在服务器上查找“/var/www/html/images/i/logo.gif”文件,同理:
location ~ ^/download/(.*)$ {,
root /home/webdata/www/$1
}
如果URL请求的是”/download/ebook.tar.gz”,那么nginx将会在服务器上查找“/home/webdata/www/download/ebook.tar.gz”文件。
从这两个例子可以看出alias命令和root命令的区别:alias指定的是当前目录,而root指定的是根目录,一般情况下,建议在“location /”中通过root命令来配置根目录,而在其他目录匹配的位置使用alias命令。