Location实操

a、location匹配分出path1和path2

http://process.enjoy.com/static/a.html —– path == /static/a.html

与 location /static 命中:path1 = /static ,剩余path2 = /a.html

image-20210220224652640

b、代理转发path。

分两种,静态文件时,转给static处理模块 == 参数path

动态代理时,转给后台web服务器 == 参数path

root转整个path1+path2

alias只转path2

root方式.

http://process.enjoy.com/static/a.html —- 命中/static, path1=/static ,path2= /a.html

转整个path1+path2 给 静态文件处理模块

image-20210220224717228

alias方式.

http://process.enjoy.com/target/a.html —- 命中/ target, path1=/ target,path2= /a.html

转整个path2 给 静态文件处理模块

image-20210220224742344

c、nginx中内容生成,有两种:静态文件处理模块 和 proxy_pass转的第三方

http://process.enjoy.com/nginx/enjoy/getInfo,命中/nginx/enjoy,path1=/nginx/enjoy,path2=/getInfo。 proxy_pass http://172.17.0.4:8081;未关闭,此处传 path1+path2

image-20210220224805853

http://process.enjoy.com/dynamic/nginx/enjoy/getInfo,命中/dynamic,

path1=/dynamic,path2=/nginx/enjoy/getInfo。

proxy_pass http://172.17.0.4:8081/;有关闭,此处只传path2

image-20210220224832879

proxy_pass**的关闭与不关闭。针对ip+port**之后有没有/

d、内容生成部分,根据前面传过来信息,生成内容,返回页面。response功能

location运算符,优先级处理

1、只有 = 是精匹配,不会被正则覆盖

2、普通匹配,即使是完全匹配,也不是精准匹配

e、echo命令:它是一个内容生成模块(**content阶段)里的命令—echo出来的值,就是页面内容**

echo**命令,不是nginx**默认自带模块,是个第三方模块

echo**模块安装:**

下载:**wget** https://github.com/openresty/echo-nginx-module/archive/v0.60.tar.gz

解压:tar -zxvf v0.60.tar.gz

配置:

./configure –add-module=/usr/local/src/echo-nginx-module-0.60 –with-http_ssl_module –with-debug

编译&安装:

make && make install