2015-02-28 2 views
2

Nginx HttpEchoModule дает мне доступ к отдельным переменным Nginx:Видя все переменные Nginx

location /whathost { 
    echo "This host is $http_host"; 
} 

Я хочу видеть каждую переменную, которая доступна и их значения, похожие на выходе set (без арг) в bash.

Возможно ли это?

ответ

0

Я не думаю, что есть встроенный способ отображения всех переменных. Но если вы посмотрите на источник, то они, по-видимому, определены в: src/http/ngx_http_variables.c

Ищите ngx_string. Вот некоторые AWK напечатать их: awk -F\" '/[^\w]ngx_string[^\w]/ {printf "%s:\t$%s\n", $2, $2}' src/http/ngx_http_variables.c

Тогда вы можете написать свой собственный набор функций:

location = /set { 
    default_type text/plain; 
    return 200 " 
# insert awk output here <- 
"; 
} 

Вы можете найти источник здесь: http://hg.nginx.org/nginx

Или вы можете увидеть переменные, которые я нашел здесь: http://pastie.org/9992530

+0

Спасибо за попытку, но это не приведет к множеству переменных. Отсутствие - это что-то, что вводит неосновный модуль (например, $ proxy_host, $ proxy_port), а также переменные, установленные во время выполнения (например, $ invalid_referer). –

Смежные вопросы