Nginx CONTENT阶段 static模块

L63-65

 

alias指令 

syntax: alias path;# 静态文件路径  alias不会将请求路径后的路径添加到 path中

context : location;

root指令

syntax : root path; #静态文件路径 root会将请求路径后添加的 path中

context : http,server,location,if in location

      location /root {
                root html;
        }
        location /alias{
                alias html;
        }

        location ~/root/(w+.txt){
                root html/first/$1;
        }
        location ~/alias/(w+.txt){
                alias html/first/$1;
        }    

访问 http://xxxx/root 返回404 通过error日志 可以看到 会在html后加上root目录 

访问 http://xxxx/alias 返回nginx主页面 返回正确 

访问 http://xxxx/root/1.txt 返回404

访问 http://xxxx/alias/1.txt 则返回1.txt内容 

 static模块三个变量

request_filename : 访问文件的完整路径包括扩展名

document_root : 由URI和root/alias规则生成的文件夹路径 

realpath_root : 将document_root软连接替换成真实路径

location /realpath{
                alias html/realpath;
                return 200 '$request_filename:$document_root:$realpath_root
';
        }

访问 http://xxxx/realpath/1.txt 则返回 /usr/local/nginx/html/realpath/1.txt:/usr/local/nginx/html/realpath:/usr/local/nginx/html/realpath 输出的路径

当用户访问资源时没有在末尾加反斜杠的时候 NGINX会返回一个301的重定向

 指令 absolute_redirect  

syntax: on | off;

default : on;

context : http,server,location 

 server {
        listen       80;
        server_name  localhost;


        absolute_redirect  off; #关闭的时候 
        port_in_redirect on;
}

演示:当关闭absolute_redirect的时候 curl http://116.196.123.9/alias -i

当访问后  看到头部是不带域名的

Server: nginx/1.14.2
Date: Fri, 15 Feb 2019 08:26:21 GMT
Content-Type: text/html
Content-Length: 185
Connection: keep-alive
Location: /alias/  #我们看到没有完整域名

当打开的时候 就有 Location: http://192.xxx.xxx.1/alias/

指令 port_in_redirect 

syntax : on | off;

defaut : on;

context : http,server,location;

指令 server_name_in_redirect 主要控制 是否返回的 host域名 还是server_name主域名

syntax : on | off;

default : off;

context : http,server,location;

原文地址:https://www.cnblogs.com/jackey2015/p/10375549.html