Nginx Location指令配置及經常使用全局變量

Nginx 中的 Location 指令 是NginxHttpCoreModule中重要指令。Location 指令比較簡單,但倒是配置 Nginx 過程當中不得不去了解的。
Location 指令,是用來爲匹配的 URI 進行配置,URI 即語法中的」/uri/」,能夠是字符串或正則表達式。但若是要使用正則表達式,則必須指定前綴。php

1、基本語法

location [=|~|~*|^~|@] /uri/ { … }

〖=〗 表示精確匹配,若是找到,當即中止搜索並當即處理此請求。
〖~ 〗 表示區分大小寫匹配
〖~*〗 表示不區分大小寫匹配
〖^~ 〗 表示只匹配字符串,不查詢正則表達式。
〖@〗 指定一個命名的location,通常只用於內部重定向請求。html

2、匹配過程

首先對字符串進行匹配查詢,最確切的匹配將被使用。而後,正則表達式的匹配查詢開始,匹配第一個結果後會中止搜索,若是沒有找到正則表達式,將使用字符串的搜索結果,若是字符串和正則都匹配,那麼正則優先級較高。nginx

3、配置實例

location  = /  {    
  [ config A ]  #只匹配對 /目錄的查詢.
}
location  / {  
  [ config B ] #匹配以 / 開始的查詢,即全部查詢都匹配。
}
location ^~ /images/ {   
  [ config C ] #匹配以 /images/ 開始的查詢,再也不檢查正則表達式。
}
location ~* \.(gif|jpg|jpeg)$ {  
  [ config D ] #匹配以gif, jpg, or jpeg結尾的文件,但優先級低於config C。
}

4、全局變量

$args #這個變量等於請求行中的參數。
$content_length #請求頭中的Content-length字段。
$content_type #請求頭中的Content-Type字段。
$document_root #當前請求在root指令中指定的值。
$host #請求主機頭字段,不然爲服務器名稱。
$http_user_agent #客戶端agent信息
$http_cookie #客戶端cookie信息
$limit_rate #這個變量能夠限制鏈接速率。
$request_body_file #客戶端請求主體信息的臨時文件名。
$request_method #客戶端請求的動做,一般爲GET或POST。
$remote_addr #客戶端的IP地址。
$remote_port #客戶端的端口。
$remote_user #已經通過Auth Basic Module驗證的用戶名。
$request_filename #當前請求的文件路徑,由root或alias指令與URI請求生成。
$query_string #與$args相同。
$scheme #HTTP方法(如http,https)。
$server_protocol #請求使用的協議,一般是HTTP/1.0或HTTP/1.1。
$server_addr #服務器地址,在完成一次系統調用後能夠肯定這個值。
$server_name #服務器名稱。
$server_port #請求到達服務器的端口號。
$request_uri #包含請求參數的原始URI,不包含主機名,如:」/foo/bar.php?arg=baz」。
$uri #不帶請求參數的當前URI,$uri不包含主機名,如」/foo/bar.html」。
$document_uri #與$uri相同。正則表達式

附錄

  • 容許客戶端請求的最大的單個文件字節數
    client_max_body_size 10m;
  • 緩衝區代理緩衝用戶端請求的最大字節數 能夠理解爲先保存到本地再傳給用戶
    client_body_buffer_size 128k;
  • 跟後端服務器鏈接的超時時間_發起握手等候響應超時時間
    proxy_connect_timeout 600;
  • 鏈接成功後_等候後端服務器響應時間_其實已經進入後端的排隊等候處理
    proxy_read_timeout 600;
  • 後端服務器數據回傳時間_就是在規定時間以內後端服務器必須傳完全部的數據
    proxy_send_timeout 600;
  • 代理請求緩存區_這個緩存區間會保存用戶的頭信息以供Nginx進行規則處理_通常只要能保存下頭信息便可
    proxy_buffer_size 8k;
  • 同上 告訴Nginx保存單個用的幾個Buffer 最大用多大空間
    proxy_buffers 4 32k;
  • 若是系統很忙的時候能夠申請更大的proxy_buffers 官方推薦*2
    proxy_busy_buffers_size 64k;
  • proxy緩存臨時文件的大小
    proxy_temp_file_write_size 64k;

Nginx目錄訪問

Nginx默認是不容許列出整個目錄的。如需此功能,後端

打開nginx.conf文件,在location server 或 http段中加入autoindex on;另外兩個參數最好也加上去:
  • autoindex_exact_size off;
    默認爲on,顯示出文件的確切大小,單位是bytes。
    改成off後,顯示出文件的大概大小,單位是kB或者MB或者GB緩存

  • autoindex_localtime on;
    默認爲off,顯示的文件時間爲GMT時間。
    改成on後,顯示的文件時間爲文件的服務器時間
    location /images {
    root   /var/www/nginx-default/ibugaocn;
    autoindex on;
    }
  • 隱藏nginx版本信息
    server_tokens off;

轉載至:https://blog.csdn.net/sforiz/article/details/78109945服務器

相關文章
相關標籤/搜索