当前位置:服务器 > > 正文

nginxlocation和alias的区别(nginx搭建图片服务器的过程详解root和alias的区别)

时间:2022-01-26 01:06:12类别:服务器

nginxlocation和alias的区别

nginx搭建图片服务器的过程详解root和alias的区别

安装过程略(我是直接用 yum -y install nginx; 安装的)。

启动

启动(重启)nginx,以下2个命令都可以:

  • systemctl restart nginx;
    # 注:这里的nginx不是目录,是cd不进去的
    /usr/sbin/nginx -s reload;
    
  • 一般不报错就是启动成功。

    页面验证nginx是否启动

    浏览器输入ip,返回centos页面,这不对吧?
    看下配置文件:

  • root /usr/share/nginx/html;
    
  • 该目录下的index.html 内容就是centos首页内容,说明没问题,nignx启动了(也可以改下index.html的title确定下)。

    准备工作

  • mkdir -p /data/images; # 创建图片文件存放目录
    chmod -R 755 /data/images; # 授权
    cd /data/images; 
    然后 rz 命令上传个图片01.png 
    
  • vim /etc/nginx.conf,添加配置:

  • location /images {
     root /data;
     autoindex on;
    }
    
  • 浏览器输入:
    111.222.333.444/data/images/01.png;
    出现图片,表示成功了。

    使用alias配置

    使用alias当然也是可以的:

  • location /images {
     alias /data/images; # 说是后面必须要加'/',这里实测不加也可以
     autoindex on;
    }
    
  • 如下写法有问题:

  • location /images {
     alias /data; 
     autoindex on; 
    }
    
  • 问题在哪?
    地址栏输入 /images/01.png 是获取不到的。
    因为 /images 会映射到 /data ,
    但是实际目录是 /data/images/01.png,
    所以少了个images。

    错误配置

    实际可能不会那么顺利,会踩很多坑。

    错误配置例1(root)

  • location /images {
     root /data/images;
     autoindex on;
    }
    
  • 地址栏输入 ip/data/images/01.png 发现获取不到,为什么呢?

    期望地址:
    /data/images/01.png
    实际地址:
    /data/images/images/01.png

    发现了吧,多了个images,
    因为使用root,地址=root+location

    其他

     root和alias的区别

    root alias
    地址 root + location 如果没有匹配到,alias + location
    如果匹配到,alias中匹配locaiton的部分会被替换掉

    还有其他区别,说是alias的路径后面必须加 /,这个未考证。

    autoindex on 的作用

    autoindex 设置目录浏览。
    on:地址栏到images就会显示文件列表
    off:必须要文件全路径,只到目录页面提示403 forbidden

  • location /images {
     	alias /data;
     	# 目录浏览功能,on:地址栏到images就会显示文件列表 off:必须要文件全路径,只到目录页面提示403 forbidden
     autoindex on; 
    }
    
  • ps:nginx配置中root和alias的区别

    例:访问http://127.0.0.1/download/*这个目录时候让他去/opt/app/code这个目录找.

    方法一(使用root关键字):

  • location / {
    root /usr/share/nginx
    }
    location /download {
    gzip_static off;
    tcp_nopush off;
    root /opt/app/code;
    }
    
  • 结果:访问的时候他是去/opt/app/code/download/这个目录找了。即:它会在这个目录里再加一层/download目录

    方法二(使用alias关键字):

  • location / {
    root /usr/share/nginx
    }
    location /download {
    gzip_static off;
    tcp_nopush off;
    alias /opt/app/code;
    }
    
  • 结果:访问的时候直接去/opt/app/code/这个目录找。

    总结

    到此这篇关于nginx搭建图片服务器(root和alias的区别)的文章就介绍到这了,更多相关nginx搭建图片服务器内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!

    上一篇下一篇

    猜您喜欢

    热门推荐