Nginx中root与alias的用法及区别:

Nginx中root与alias都是定义location {}块中虚拟目录访问的文件位置:

先看看两者在用法上的区别:

location /img/ {
    alias /var/www/image/;
}
#若按照上述配置的话,当客户端请求访问/img/目录里面的文件时,ningx会自动去/var/www/image/目录找文件

location /img/ {
    root /var/www/image;
}
#若按照这种配置的话,则访问/img/目录下的文件时,nginx会去/var/www/image/img/目录下找文件. 

alias是一个目录别名的定义,root则是最上层目录的定义。

还有一个重要的区别是alias后面必须要用“/”结束,否则会找不到文件的。。。而root则可有可无~~

一般情况下,在location / 中配置root,在location /other中配置alias是一个好习惯...

实例:

location / {
        try_files $uri $uri/ /index.html;
        root  /opt/ytd_nas/share_data/staticpages/pwa;
        index    index.html;
        allow 111.207.170.18/32;
        allow 106.38.75.122/32;
        deny all;
    }

#访问根路径时,用root指定路径地址.

    location /static {
        alias /opt/ytd_nas/share_data/staticpages/mobile/static;
    }
#当访问www.xxx.com/static目录时访问alias下的目录

参考文档:

    http://www.cnblogs.com/tintin1926/archive/2012/07/11/2586813.html

    http://blog.sina.com.cn/s/blog_af6bb6bc0102v6xu.html

    http://blog.csdn.net/kinginblue/article/details/50748683