Nginx內(nèi)置參數(shù)及l(fā)og_format配置

Nginx簡(jiǎn)介

Nginx(發(fā)音同engine x)是一個(gè)異步框架的 Web 服務(wù)器俩檬,也可以用作反向代理要糊,負(fù)載平衡器HTTP 緩存纲熏。該軟件由 Igor Sysoev 創(chuàng)建,并于2004年首次公開(kāi)發(fā)布锄俄。同名公司成立于2011年局劲,以提供支持。Nginx 是一款免費(fèi)的開(kāi)源軟件奶赠,根據(jù)類(lèi) BSD 許可證的條款發(fā)布鱼填。一大部分Web服務(wù)器使用 Nginx ,通常作為負(fù)載均衡器毅戈。[1]

Nginx的特點(diǎn)

  • 更快:

    • 單次請(qǐng)求會(huì)得到更快的響應(yīng)
    • 在高并發(fā)環(huán)境下,Nginx比其他web服務(wù)器有更快的響應(yīng)
  • 高擴(kuò)展性:

    • nginx是基于模塊化設(shè)計(jì),由多個(gè)耦合度極低的模塊組成,因此具有很高的擴(kuò)展性苹丸。許多高流量的網(wǎng)站都傾向于開(kāi)發(fā)符合自己業(yè)務(wù)特性的定制模塊愤惰。
  • 高可靠性:

    • nginx的可靠性來(lái)自于其核心框架代碼的優(yōu)秀設(shè)計(jì),模塊設(shè)計(jì)的簡(jiǎn)單性谈跛;另外羊苟,官方提供的常用模塊都非常穩(wěn)定,每個(gè)worker進(jìn)程相對(duì)獨(dú)立感憾,master進(jìn)程在一個(gè)worker進(jìn)程出錯(cuò)時(shí)可以快速拉起新的worker子進(jìn)程提供服務(wù)蜡励。
  • 低內(nèi)存消耗:

    • 一般情況下,10000個(gè)非活躍的HTTP Keep-Alive 連接在Nginx中僅消耗2.5MB的內(nèi)存阻桅,這是nginx支持高并發(fā)連接的基礎(chǔ)凉倚。
    • 單機(jī)支持10萬(wàn)以上的并發(fā)連接:理論上,Nginx 支持的并發(fā)連接上限取決于內(nèi)存嫂沉,10萬(wàn)遠(yuǎn)未封頂稽寒。
  • 熱部署:

    • master 進(jìn)程與 worker 進(jìn)程的分離設(shè)計(jì),使得 Nginx 能夠提供熱部署功能趟章,即在 7x24 小時(shí)不間斷服務(wù)的前提下杏糙,升級(jí) Nginx 的可執(zhí)行文件。當(dāng)然蚓土,它也支持不停止服務(wù)就更新配置項(xiàng)宏侍,更換日志文件等功能。
  • 最自由的 BSD 許可協(xié)議:

    • 這是 Nginx 可以快速發(fā)展的強(qiáng)大動(dòng)力蜀漆。BSD 許可協(xié)議不只是允許用戶(hù)免費(fèi)使用 Nginx 谅河,它還允許用戶(hù)在自己的項(xiàng)目中直接使用或修改 Nginx 源碼,然后發(fā)布确丢。[2]

內(nèi)置變量參數(shù)詳解

$args    # 請(qǐng)求中的參數(shù)值
$query_string # 同 $args
$arg_NAME  # GET請(qǐng)求中NAME的值
$is_args   # 如果請(qǐng)求中有參數(shù)绷耍,值為"?",否則為空字符串
$uri # 請(qǐng)求中的當(dāng)前URI(不帶請(qǐng)求參數(shù)鲜侥,參數(shù)位于$args)褂始,可以不同于瀏覽器傳遞的$request_uri的值,它可以通過(guò)內(nèi)部重定向剃毒,或者使用index指令進(jìn)行修改病袄,$uri不包含主機(jī)名,如"/foo/bar.html"赘阀。
$document_uri  # 同 $uri
$document_root  # 當(dāng)前請(qǐng)求的文檔根目錄或別名
$host  # 優(yōu)先級(jí):HTTP請(qǐng)求行的主機(jī)名>"HOST"請(qǐng)求頭字段>- 符合請(qǐng)求的服務(wù)器名.請(qǐng)求中的主機(jī)頭字段益缠,如果請(qǐng)求中的主機(jī)頭不可用,則為服務(wù)器處理請(qǐng)求的服務(wù)器名稱(chēng)
$hostname # 主機(jī)名
$https    # 如果開(kāi)啟了SSL安全模式基公,值為"on"幅慌,否則為空字符串。
$binary_remote_addr # 客戶(hù)端地址的二進(jìn)制形式轰豆,固定長(zhǎng)度為4個(gè)字節(jié)
$body_bytes_sent # 傳輸給客戶(hù)端的字節(jié)數(shù)胰伍,響應(yīng)頭不計(jì)算在內(nèi)齿诞;這個(gè)變量和Apache的mod_log_config模塊中的"%B"參數(shù)保持兼容
$bytes_sent # 傳輸給客戶(hù)端的字節(jié)數(shù)
$connection  # TCP連接的序列號(hào)
$connection_requests  # TCP連接當(dāng)前的請(qǐng)求數(shù)量
$content_length          # "Content-Length" 請(qǐng)求頭字段
$content_type            # "Content-Type" 請(qǐng)求頭字段
$cookie_name  # cookie名稱(chēng)
$limit_rate   # 用于設(shè)置響應(yīng)的速度限制
$msec # 當(dāng)前的Unix時(shí)間戳
$nginx_version  # nginx版本
$pid  # 工作進(jìn)程的PID
$pipe # 如果請(qǐng)求來(lái)自管道通信,值為"p"骂租,否則為"."
$proxy_protocol_addr # 獲取代理訪問(wèn)服務(wù)器的客戶(hù)端地址祷杈,如果是直接訪問(wèn),該值為空字符串
$realpath_root # 當(dāng)前請(qǐng)求的文檔根目錄或別名的真實(shí)路徑渗饮,會(huì)將所有符號(hào)連接轉(zhuǎn)換為真實(shí)路徑
$remote_addr  # 客戶(hù)端地址
$remote_port  # 客戶(hù)端端口
$remote_user  # 用于HTTP基礎(chǔ)認(rèn)證- 服務(wù)的用戶(hù)名
$request # 代表客戶(hù)端的請(qǐng)求地址
$request_body  # 客戶(hù)端的請(qǐng)求主體:此變量可在l- - ocation中使用但汞,將請(qǐng)求主體通過(guò)proxy_pass,fastcgi_pass互站,uwsgi_pass和scgi_pass傳遞給下一級(jí)的代理服務(wù)器
$request_body_file # 將客戶(hù)端請(qǐng)求主體保存在臨時(shí)文件中私蕾。文件處理結(jié)束后,此文件需刪除胡桃。如果需要之一開(kāi)啟此功能踩叭,需要設(shè)置client_body_in_fi- le_only。如果將次文件傳 給后端的代理服務(wù)器翠胰,需要禁用request body容贝,即設(shè)置proxy_pass_request_body off,fastcgi_pass_request_body - off之景,uwsgi_pass_request_body off嗤疯,or scgi_pass_request_body off
$request_completion # 如果請(qǐng)求成功,值為"OK"闺兢,如果請(qǐng)求未完成或者請(qǐng)求不是一個(gè)范圍請(qǐng)求的最后一部分,則為空
$request_filename  # 當(dāng)前連接請(qǐng)求的文件路徑戏罢,由root或alias指令與URI請(qǐng)求生成
$request_length   # 請(qǐng)求的長(zhǎng)度 (包括請(qǐng)求的地址屋谭,http請(qǐng)求頭和請(qǐng)求主體)
$request_method   # HTTP請(qǐng)求方法,通常為"GET"或"POST"- 
$request_time     # 處理客戶(hù)端請(qǐng)求使用的時(shí)間,單位為秒龟糕,精度毫秒桐磁; - 從讀入客戶(hù)端的第一個(gè)字節(jié)開(kāi)始,直到把最后一個(gè)字符發(fā)送給客戶(hù)端后進(jìn)行日志寫(xiě)入為止讲岁。- 
$request_uri    # 這個(gè)變量等于包含一些客戶(hù)端請(qǐng)求參數(shù)的原始URI我擂,它無(wú)法修改,請(qǐng)查看$uri更改或重寫(xiě)URI缓艳,不包含主機(jī)名校摩,例如:"/cnphp/- test.php?arg=freemouse"
$scheme  # 請(qǐng)求使用的Web協(xié)議,"http" 或 "https"
$server_addr  # 服務(wù)器端地址阶淘,需要注意的是:為了避免訪問(wèn)linux系統(tǒng)內(nèi)核衙吩,應(yīng)將ip地址提前設(shè)置在配置文件中
$server_name      # 服務(wù)器名
$server_port      # 服務(wù)器端口
$server_protocol  # 服務(wù)器的HTTP版本,通常為 "HTTP/1.0" 或 "HTTP/1.1"
$status # HTTP響應(yīng)代碼
$time_iso8601  # 服務(wù)器時(shí)間的ISO 8610格式
$time_local   # 服務(wù)器時(shí)間(LOG Format 格式)
$cookie_NAME # 客戶(hù)端請(qǐng)求Header頭中的cookie變量溪窒,前綴"$cookie_"加上cookie名稱(chēng)的變量坤塞,該變量的值即為cookie名稱(chēng)的值
$http_NAME # 匹配任意請(qǐng)求頭字段冯勉;變量名中的后半部分NAME可以替換成任意請(qǐng)求頭字段,如在配置文件中需要獲取http請(qǐng)求頭:"Accept-L- anguage"摹芙,$http_accept_language即可
$http_cookie # cookie 信息
$http_host  # 請(qǐng)求地址灼狰,即瀏覽器中你輸入的地址(IP或域名)
$http_referer # url跳轉(zhuǎn)來(lái)源,用來(lái)記錄從那個(gè)頁(yè)面鏈接訪問(wèn)過(guò)來(lái)的
$http_user_agent # 用戶(hù)終端瀏覽器等信息
$http_x_forwarded_for # 獲取客戶(hù)端真實(shí) IP 地址的參數(shù)
$sent_http_NAME # 可以設(shè)置任意http響應(yīng)頭字段;變量名中的后半部分NAME可以替換成任意響應(yīng)頭字段浮禾,如需要設(shè)置響應(yīng)頭 Content-length交胚,$s- ent_http_content_length即可
$sent_http_cache_control # 發(fā)送http緩存控制
$sent_http_connection # 發(fā)送http連接
$sent_http_content_type # 發(fā)送http類(lèi)型
$sent_http_keep_alive # 發(fā)送http連接保持
$sent_http_last_modified # 發(fā)送http最后修改
$sent_http_location # 發(fā)送http位置
$sent_http_transfer_encoding- # 發(fā)送http傳輸編碼 [[3]]

Nginx 日志例子

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent $request_time "$http_referer" '
                      '$host DIRECT/$upstream_addr $upstream_http_content_type '
                      '"$http_user_agent" "$http_x_forwarded_for" '
                      '"$Cookie_MEIQIA_EXTRA_TRACK_ID" "$Cookie_cpsInfo" "$Cookie_sid_account" "$Cookie_sid_user" "$Cookie_ss_user" "$Cookie_xxd_uid" "$Cookie_xxd_user" "$uid_got" "$uid_set"';

log_format 部分參數(shù)解釋

  • $proxy_protocol_addr # 遠(yuǎn)程地址(如果啟用了代理協(xié)議)
  • $remote_addr # 客戶(hù)端的源IP地址
  • $remote_user # 用于HTTP基礎(chǔ)認(rèn)證服務(wù)的用戶(hù)名
  • $time_local # 訪問(wèn)時(shí)間和時(shí)區(qū)
  • $request # 請(qǐng)求的URI和HTTP協(xié)議
  • $http_host # 請(qǐng)求地址,即瀏覽器中你輸入的地址(IP或域名)
  • $request # 請(qǐng)求的URI和HTTP協(xié)議
  • $http_host # 請(qǐng)求地址伐厌,即瀏覽器中你輸入的地址(IP或域名)
  • $status # HTTP請(qǐng)求狀態(tài)
  • $upstream_status # upstream狀態(tài)
  • $body_bytes_sent # 發(fā)送給客戶(hù)端文件內(nèi)容大小
  • $http_referer # url跳轉(zhuǎn)來(lái)源
  • $http_user_agent # 用戶(hù)終端瀏覽器等信息
  • $ssl_protocol # SSL協(xié)議版本
  • $ssl_cipher # 交換數(shù)據(jù)中的算法
  • $upstream_addr # 后臺(tái)upstream的地址承绸,即真正提供服務(wù)的主機(jī)地址
  • $request_time # 整個(gè)請(qǐng)求的總時(shí)間
  • $upstream_response_time # 請(qǐng)求過(guò)程中,upstream響應(yīng)時(shí)間 [3]

參考鏈接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末挣轨,一起剝皮案震驚了整個(gè)濱河市军熏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌卷扮,老刑警劉巖荡澎,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異晤锹,居然都是意外死亡摩幔,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)鞭铆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)或衡,“玉大人,你說(shuō)我怎么就攤上這事车遂》舛希” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵舶担,是天一觀的道長(zhǎng)坡疼。 經(jīng)常有香客問(wèn)我,道長(zhǎng)衣陶,這世上最難降的妖魔是什么柄瑰? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮剪况,結(jié)果婚禮上教沾,老公的妹妹穿的比我還像新娘。我一直安慰自己拯欧,他們只是感情好详囤,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般藏姐。 火紅的嫁衣襯著肌膚如雪隆箩。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,079評(píng)論 1 285
  • 那天羔杨,我揣著相機(jī)與錄音捌臊,去河邊找鬼。 笑死兜材,一個(gè)胖子當(dāng)著我的面吹牛理澎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播曙寡,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼糠爬,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了举庶?” 一聲冷哼從身側(cè)響起执隧,我...
    開(kāi)封第一講書(shū)人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎户侥,沒(méi)想到半個(gè)月后镀琉,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蕊唐,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年屋摔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片替梨。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡钓试,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出副瀑,到底是詐尸還是另有隱情亚侠,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布俗扇,位于F島的核電站,受9級(jí)特大地震影響箕别,放射性物質(zhì)發(fā)生泄漏铜幽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一串稀、第九天 我趴在偏房一處隱蔽的房頂上張望除抛。 院中可真熱鬧,春花似錦母截、人聲如沸到忽。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)喘漏。三九已至护蝶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間翩迈,已是汗流浹背持灰。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留负饲,地道東北人堤魁。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像返十,于是被迫代替她去往敵國(guó)和親妥泉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容