官术网_书友最值得收藏!

2.4 變量

“變量”是Nginx內(nèi)部保存的運行時HTTP/TCP請求相關(guān)數(shù)據(jù),可以在編寫配置文件時任意引用,使得編寫Nginx配置文件更像是編寫程序(但注意不要與編程語言里的變量概念混淆,兩者是完全不同的)。

在配置文件里使用變量需要以“$”開頭,例如$request_method、$args、$uri等(這與Shell和Perl是一樣的)。變量的用法很多,例如記錄訪問日志,設(shè)置反向代理的參數(shù),或者傳遞給Lua程序獲取各種運行時信息。

以下列舉了幾個在HTTP服務(wù)里較常見的變量:

    ■  $uri              :當前請求的URI,但不含“? ”后的參數(shù);
    ■  $args             :當前請求的參數(shù),即“? ”后的字符串;
    ■  $arg_xxx          :當前請求里的某個參數(shù),“arg_”后是參數(shù)的名字;
    ■  $http_xxx         :當前請求里的xxx頭部對應(yīng)的值;
    ■  $sent_http_xxx    :返回給客戶端的響應(yīng)頭部對應(yīng)的值;
    ■  $remote_addr      :客戶端IP地址。

如果執(zhí)行下面的curl命令:

curl 'http://localhost/index.html? a=1&b=2' -H 'hello: world'

那么這些變量的值就是:

$uri                  = /index.html
$args                 = a=1&b=2
$arg_a                = 1
$arg_b                = 2
$http_hello           = world
$sent_http_server     = openresty/1.13.6.2
$remote_addr          = 127.0.0.1

Nginx內(nèi)置的變量非常多,詳細的列表可以參考Nginx官網(wǎng)文檔。此外,Nginx也允許使用指令自定義變量,最常用的就是set,例如:

set $max_size        10000; #定義變量$max_size="10000"
主站蜘蛛池模板: 曲麻莱县| 华容县| 东阿县| 江达县| 铅山县| 湟中县| 临江市| 家居| 酒泉市| 定远县| 德兴市| 吴川市| 翁源县| 隆尧县| 承德县| 钟山县| 沽源县| 钟山县| 沭阳县| 武强县| 黄冈市| 辉南县| 深圳市| 曲沃县| 涿鹿县| 漳平市| 绵竹市| 阿拉尔市| 永胜县| 深圳市| 那曲县| 乌拉特前旗| 万山特区| 广德县| 道孚县| 灵武市| 永寿县| 曲阜市| 青川县| 福清市| 普陀区|