nginx配置詳解之http模組
HTTP模組控制著nginx http處理的所有核心特性 以下為常用配置:
http{ include mime.types; default_type application/octet-stream; client_header_buffer_size 4k; large_client_header_buffers 8 128k; client_body_buffer_size 512k; client_max_body_size 300m; gzip on; sendfile on; #tcp_nopush on; }
log_format日誌配置 負載均衡 反向代理等配置此處省略介紹 我將在介紹相應的模組時詳細介紹 故此出省區部分配置
include mime.types;
default_type application/octet-stream;
#設定mime型別,型別由mime.type檔案定義 該檔案內定義指定檔案頭所對應的檔案格式 下面為擷取的部分檔案內容
types { text/html html htm shtml; text/css css; text/xml xml; image/gif gif; image/jpeg jpeg jpg; application/javascript js; application/atom+xml atom; ........
如果你需要新增自定義的檔案型別 可以在此檔案內定義
client_header_buffer_size 4k;
客戶端請求頭部的緩衝區大小,這個可以根據你的系統分頁大小來設定,一般一個請求的頭部大小不會超過1k,常見系統分頁大小一般為4k 你可以通過下列命令查詢:
[xxxx ~]# getconf PAGESIZE
4096
large_client_header_buffers 8 128k;
客戶請求頭緩衝大小 nginx,預設會用client_header_buffer_size設定的buffer值來讀取header值,如果header過大,它會使用large_client_header_buffers設定的值來讀取
對於nginx處理請求,先處理請求的request_line,之後才是request_header,兩者的buffer分配策略相同,先根據client_header_buffer_size配置的值分配一個buffer,如果分配的buffer
無法容納 request_line/request_header,那麼就會再次根據large_client_header_buffers配置的引數分配large_buffer,如果large_buffer還是無法容納,對於request_line過大
nginx會返回414錯誤 Request URI too large 對於request_header過大,如請求的HTTP頭/Cookie過大 則會出現nginx 400 bad request 的錯誤 注:request請求包的起始為請求行(Request-Line)
使用場景:
1.如果你的請求中的header都很大,那麼應該使用client_header_buffer_size,這樣能減少一次記憶體分配。如果你的請求中只有少量請求header很大,那麼應該使用
2.large_client_header_buffers,因為這樣就僅需在處理大header時才會分配更多的空間,從而減少無謂的記憶體空間浪費。
client_body_buffer_size 512k;
同上面的client_header_buffer_size 不過處理的是訊息體 body
client_max_body_size 300m;
同上面的large_client_header_buffers 如果你的應用請求body過大 如大檔案上傳 如果這裡設定不夠 將會出現 nginx 413 request entity too large
以上四個引數可以配置在main模組對全域性起作用 也可以單獨配置在http模組內或者server模組內 由於習慣配置於http模組內 所以我在此處講解
gzip on;
gzip壓縮功能可以節省頻寬,但是會增加伺服器CPU的開銷,Nginx預設只對text/html進行壓縮,如果要對html之外的內容進行壓縮傳輸,需要手動配置
這個配置對整體效能提升有很大幫助 我將在另一篇博文中詳細介紹
sendfile on;
sendfile指令指定 nginx 是否呼叫sendfile 函式(zero copy 方式)來輸出檔案,對於普通應用,必須設為on。如果用來進行下載等應用磁碟IO重負載應用,可設定為off,以平衡磁碟與網路IO處理速度,降低系統負載
tcp_nopush on;
此選項允許或禁止使用socket的TCP_CORK的選項,此選項僅在使用sendfile的時候使用,預設為on
tcp_nodelay on;
這裡tcp_nodelay就是nagle啟用與否的開關,所以上面的指令的效果就是禁用nagle演算法,也即不快取資料,預設為off 設定為on 即表示禁用Nagle 演算法
proxy_intercept_errors on;
表示使nginx阻止HTTP應答程式碼為400或者更高的應答。
相關推薦
nginx配置詳解之http模組
HTTP模組控制著nginx http處理的所有核心特性 以下為常用配置: http{ include mime.types; default_type application/octet-stream; client_header_buffer_
nginx配置詳解之location模組
在前幾篇博文中我提到過的 nginx除了是一款的web伺服器外 nginx還是一個小型的反向代理伺服器 我們可以使用nginx將一些靜態檔案 例如css js images 儲存在客戶端本地 下次請求的時候直接從本地讀取 加快頁面響應速度 又比如 我們可
nginx配置詳解之main模組
nginx常用全域性配置如下: user nginx; worker_processes = 1; error_log /var/log/nginx/error.log; worker_rlimit_nofile 20000; pid /var/run/ng
Nginx深入詳解之過濾模組
一、模組簡介 過濾(filter)模組是過濾響應頭和內容的模組,可以對回覆的頭和內容進行處理。它的處理時間在獲取回覆內容之後,向用戶傳送響應之前。它的處理過程分為兩個階段,過濾HTTP回覆和頭部和主體,在這兩個階段可以分別對頭部和主體進行修改。下面函式就是分別對頭部和
Nginx得Location配置詳解之精準匹配
location的匹配過程一、location 的定義 location 有“定位”的意思,根據Uri來進行不同的定位。 在虛擬主機的配置中,是必不可少得,location可以把網站的不同部分,定位到不同的處理方式上。二、location 的語法 location [
Nginx深入詳解之模組化體系結構
在開始嘮叨之前,先簡單介紹下配置系統,因為之後的東東會與這個有一定的關係。 一、配置系統 Nginx的配置系統由一個主配置檔案和一些輔助配置檔案構成,這些配置檔案預設在/etc/nginx/目錄下。 輔助配置檔案只在某些特定情況下才
Nginx配置詳解
set 文件結構 時也 解決方案 ces 反向代理服務器 use 力量 第三方模塊 最近在搞nginx和tomcat 以及apache的集群。下面是參考的一片很不錯的關於nginx配置的詳細講解: http://www.cnblogs.com/knowledgesea/p/
Web.xml配置詳解之context-param
ltr 完成 數據庫 數據 鍵值對 art str htm 方法 轉自:http://blog.csdn.net/liaoxiaohua1981/article/details/6759206 格式定義: [html] view plaincopy
[轉]Nginx配置詳解
fast forward type 時間 去除 負載 所有 hash dex Nginx是lgor Sysoev為俄羅斯訪問量第二的rambler.ru站點設計開發的。從2004年發布至今,憑借開源的力量,已經接近成熟與完善。 Nginx功能豐富,可作為HTTP服務器,也可
webpack4配置詳解之慢嚼細嚥
前言 經常會有群友問起webpack、react、redux、甚至create-react-app配置等等方面的問題,有些是我也不懂的,慢慢從大家的相互交流中,也學到了不少。 今天就嘗試著一起來聊聊Webpack吧,旨在幫大家加深理解、新手更容易上路,都能從0到1搭建配置自定屬於自己的腳手架,或
最實用的Nginx配置詳解
好記憶不如爛筆頭,能記下點東西,就記下點,有時間拿出來看看,也會發覺不一樣的感受。 Nginx是一個非常實用的高效能的HTTP和反向代理伺服器,今天小編針對Nginx的配置檔案(nginx.conf)進行詳細的介紹,方便各位感興趣的朋友更便捷,更愉快的使用Nginx,配置如下:(文章末尾有示例
webpack4配置詳解之新手上路初探
前言 經常會有群友問起webpack、react、redux、甚至create-react-app配置等等方面的問題,有些是我也不懂的,慢慢從大家的相互交流中,也學到了不少。 今天就嘗試著一起來聊聊Webpack吧,旨在幫大家加深理解、新手更容易上路,都能從0到1搭建配置自定屬於自己的腳手架
webpack4配置詳解之常用外掛分享
前言 繼上一次webpack的基礎配置分享之後,本次將分享一些工作中專案常用的配置外掛、也會包含一些自己瞭解過覺得不錯的外掛,如有分析不到位的,歡迎糾錯,嗯,這些東西文件都有,大佬可繞過。 Wepack4之後廢棄了很多的外掛,這裡只會講解webpack4還支援的(包含4之前外掛),已經廢棄的將
webpack4配置詳解之常用插件分享
dom turn false 所想 感謝 建議 tro isp 提取 前言 繼上一次webpack的基礎配置分享之後,本次將分享一些工作中項目常用的配置插件、也會包含一些自己了解過覺得不錯的插件,如有分析不到位的,歡迎糾錯,嗯,這些東西文檔都有,大佬可繞過。
Nginx深入詳解之多程序網路模型
一、程序模型 Nginx之所以為廣大碼農喜愛,除了其高效能外,還有其優雅的系統架構。與Memcached的經典多執行緒模型相比,Nginx是經典的多程序模型。Nginx啟動後以daemon的方式在後臺執行,後臺程序包含一個m
Web.xml配置詳解之context-param,listener
格式定義: [html] view plain copy <c
深入淺出Mybatis原始碼系列(三)---配置詳解之properties與environments(mybatis原始碼篇)
上篇文章《深入淺出Mybatis原始碼系列(二)---配置簡介(mybatis原始碼篇)》我們通過對mybatis原始碼的簡單分析,可看出,在mybatis配置檔案中,在configuration根節點下面,可配置properties、typeAliases、plugins、
ELK日誌監控分析系統Logstash詳解之——output模組
摘要: Logstash的output模組,相比於input模組來說是一個輸出模組,output模組集成了大量的輸出外掛,可以輸出到指定檔案,也可輸出到指定的網路埠,當然也可以輸出資料到ES.在這裡我只介紹如何輸出到ES,至於如何輸出到埠和指定檔案,有很多的文件資料可查詢. Logs
ELK日誌監控分析系統Logstash詳解之——input模組
摘要: Logstash由三個元件構造成,分別是input、filter以及output。我們可以吧Logstash三個元件的工作流理解為:input收集資料,filter處理資料,output輸出資料。至於怎麼收集、去哪收集、怎麼處理、處理什麼、怎麼發生以及傳送到哪等等一些列的問題就是我
ELK日誌監控分析系統Logstash詳解之——filter模組
摘要: Logstash三個元件的第二個元件,也是真個Logstash工具中最複雜,最蛋疼的一個元件,當然,也是最有作用的一個元件。 1、grok外掛 grok外掛有非常強大的功能,他能匹配一切資料,但是他的效能和對資源的損耗同樣讓人詬病。 Logstash三個元件的第二個元件,也是