如果你愿意帮助hiproxy编写文档,请联系zdying@live.com, 谢谢!

If you are willing to help hiproxy to write documentation, please contact zdying@live.com, thank you!

hiproxy的rewrite规则配置文件中,我们可以自己定义全局变量(在全局作用域中使用set $var value),也可以在其他作用域中定义变量;

hiproxy内置了一些变量,这些内置变量可以在相应的作用域中直接使用,不需要去定义并赋值,而且这些内置变量也不能被用户重新定义覆盖。

全局变量

这些全局变量,在配置文件的任何地方都可以使用

提示:hiproxy暂时没有内置的全局变量。将来会添加!

location块级变量

这些变量,只能在location块中使用,这些变量主要是存储与请求相关的一些信息,比如请求的参数($query_string)、Cookie($cookie_name)和host($host)等。现在支持的所有内置变量:

$host

当前请求的URL对应的host或者请求头部的Host字段。

$hostname

当前请求的URL对应的hostname或者请求头部的Host字段对应的hostname

$server_port

请求的服务端口号,默认80

请求的参数字符串(包括?),比如?from=app&v=19482848253

$query_string

请求的参数字符串(不包括?),比如from=app&v=19482848253

$scheme

请求的协议,http或者https

$request_uri

请求的完整地址,比如http://hiproxy.org:8081/docs/index.html?from=google&v=_1847295727524#get-started

$path

请求的path(包括参数),比如/docs/index.html?from=google&v=_1847295727524#get-started

$path_name

请求的path_name(不包括参数),比如/docs/index.html

$base_name

请求path的最后一部分,比如path为/docs/index.html,则$base_name为index.html

$dir_name

请求path的目录名称,比如path为/docs/index.html,则$dir_name为/docs/

$hash

请求url中的hash(包括#),比如’#get-started’。

$hash_value

请求url中的hash值(不包括#),比如’get-started’。

$uri

$request_uri

cookie的值,name表示字段名称,这个名称中的大写字母都改成了小写,-替换成了_。比如$cookie_userId表示cookieuseId的值。

$http_name

请求头(request)中的字段值,name表示字段名称,这个名称中的大写字母都改成了小写,-替换成了_。比如请求头信息中包含User-Agent: user agent,可以使用变量$http_user_agent来获取这个值。

$arg_name

请求参数的值,name表示字段名称,这个名称中的大写字母都改成了小写,-替换成了_。比如请求参数为?from=google&v=_1847295727524,可以通过$arg_from来获取from的值。