proxy_pass
proxy_pass后面的url加/,表示绝对根路径
proxy_pass后面的url不加/,表示相对路径,把匹配的路径部分也给代理走
下面四种情况只有第二种url后面不加/(加上匹配路径),其他三种url后面都跟了/(不加匹配路径)
假设下面四种情况分别用 http://192.168.1.1/proxy/test.html 进行访问
第一种:
location /proxy/ {
proxy_pass http://127.0.0.1/;
}
代理到URL:http://127.0.0.1/test.html
第二种:
location /proxy/ {
proxy_pass http://127.0.0.1;
}
代理到URL:http://127.0.0.1/proxy/test.html
第三种:
location /proxy/ {
proxy_pass http://127.0.0.1/aaa/;
}
代理到URL:http://127.0.0.1/aaa/test.html
第四种:
location /proxy/ {
proxy_pass http://127.0.0.1/aaa;
}
代理到URL:http://127.0.0.1/aaatest.html
proxy_set_header
设置请求头,并将头信息传递到服务器端
打印几个变量值
echo "==================================================";
echo "host: " $host;
echo "http_host: " $http_host;
echo "proxy_host: " $proxy_host;
echo "port: " $proxy_port;
echo "remote_addr: " $remote_addr;
echo "proxy_add_x_forwarded_for: " $proxy_add_x_forwarded_for;
echo "==================================================";
proxy_redirect
未知...
一般直接设置为
proxy_redirect off;
location
匹配规则:
/ 通用匹配,任何请求都会匹配到
= 精确匹配
^~ 前缀匹配,表示uri以某个常规字符串开头
~ 正则匹配,表示区分大小写的
~* 正则匹配,表示不区分大小写的
匹配顺序:
首先匹配 =
其次匹配 ^~ (按最大匹配原则进行匹配)
其次是按文件中顺序的正则匹配
最后是交给 /