Nginx中的root和alias指令该如何使用?

Nginx是一款流行的Web服务器软件,常被用于反向代理。

在Nginx的配置文件中,经常用到root和alias指令,这两个指令有什么区别。下面是一个具体的示例,配置文件如下:

server {
  listen       80;
  server_name  www.aneirin.xyz;
  access_log   /var/log/nginx/access.log  main;

  location /a {
    root /html;
  }
}

在Nginx服务器目录”/html/a“下放置文件”src.txt“,包含内容:“This is a test page!!!”。

访问这个文件,

[aneirin@host-1]$ curl http://www.aneirin.xyz/a/src.txt
This is a test page!!

如果要用alias指令,需要将配置文件的第7行修改成这样,

alias /html/a;

之所以要这样修改,是因为alias指令的作用是给指定的location起一个别名。结合上面的配置文件,简单理解为给“/a”起了个别名“/html/a”。配置文件中的location是”/a“,当访问"/a/src.txt"时,nginx把文件”/html/a/src.txt“返回给客户端。

再举一个例子,如果请求的URL是“
http://www.aneirin.xyz/a/b/src.txt”,nginx配置文件不改,“src.txt”文件应该放到哪个目录?nginx配置文件:

server {
  listen       80;
  server_name  www.aneirin.xyz;
  access_log   /var/log/nginx/third-access.log  main;

  location /a {
    root /html;
  }

  #location /a {
  #  alias /html/a/;
  #}
}

答案:“src.txt”应该放到服务器“/html/a/b”目录,大家想想为什么?

“root”和“alias”还有一个区别是“alias”只能放在“location”上下文中,而“root”可以放置在“http”,“server”,“location”上下文中。

相关文章

Nginx架构最全详解(图文全面总结)

Nginx是大型架构的必备中间件,也是高并发架构的关键点,下面我重点详解Nginx架构@mikechen本文作者:陈睿|mikechen文章来源:mikechen.ccNginxNginx是一款高性能...

【Nginx】史上最全的Nginx配置详解

Nginx服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里,http块又包括http全局块和server块。Nginx是非常重要的负载均衡中间件,被广泛应用于大型...

Nginx最全教程(万字图文总结)

大家好,我是mikechen。Nginx是非常重要的中间件,被广泛应用于大型网站架构,各大厂基本都在使用,下面我就全面来详解:Nginx@mikechen本篇已收于mikechen原创超30万字《阿里...

Nginx配置最全详解(万字图文总结)

[TOC]Nginx 也是我们比较常见的“玩具”了,不过有的小伙伴对 Nginx 配置不熟悉,每次使用的时候都要搜索,松哥在本文中给出一些常见的配置案例,小伙伴们可以收藏备用。一 什么是 NginxN...

Nginx/OpenResty详解,Nginx Lua编程,重定向与内部子请求

重定向与内部子请求Nginx的rewrite指令不仅可以在Nginx内部的server、location之间进行跳转,还可以进行外部链接的重定向。通过ngx_lua模块的Lua函数除了能实现Nginx...

Nginx 详细介绍及使用方法

Nginx 详细介绍及使用方法Nginx(发音为 "engine-x")是一个高性能的HTTP和反向代理服务器,也可以用作IMAP/POP3/SMTP代理服务器。它以其高并发连接处理能...