nginx配置

405 阅读1分钟

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以某个常规字符串开头
~    正则匹配,表示区分大小写的
~*   正则匹配,表示不区分大小写的


匹配顺序:
首先匹配 =
其次匹配 ^~ (按最大匹配原则进行匹配)
其次是按文件中顺序的正则匹配
最后是交给 /