緩沖相關
Nginx默認有緩沖設計,因為客戶端往往有很大的不同的連接速度。我們可以用以下指令調節緩沖行為。可以在HTTP,server或 location位置來設置。重要的是要記住,大小size指令是針對每個請求配置的,所以增加超出你需求會影響你的性能,如果這時有許多客戶端請求:
proxy_buffering 默認為on 指令控制緩沖是否啟用
當Proxybuffer啟用之后,Nginx服務器首先盡可能從被代理服務器哪里接收響應數據,放置在proxy buffer中,buffer的大小有proxy_buffer_size和proxy buffers指定決定,如果在接收過程中,發現buffer沒有足夠的大小來接收一次響應數據,nginx服務器會將接收到的數據臨時存放到磁盤的臨時文件中,磁盤上的臨時文件路徑可以通過proxy_temp_path指令進行設置,臨時文件的大小有proxy_max_temp_file_size指令決定,一次響應數據接收完成后,nginx服務器在向客戶端傳輸數據
1、proxy_buffers number size
Syntax: proxy_buffers number size;
Default:
proxy_buffers 8 4k|8k;
Context: http, server, location
該指令控制代理響應緩沖區的數量(第一個參數)和大小(第二個參數)
該指令用于配置接收一次被代理服務器響應數據的個數和每個buffer的大小
2、proxy_buffer_size
語法:
proxy_buffer_size size
默認值
proxy_buffer_size 4k |8k
作用:
該指令設置緩沖區大小,從后端服務器取得的第一部分的響應內容,會存放到這里。小的響應
header通常位于這里
常見問題:
1) nginx buffer 設置太小,如果 URL 比較長導致 504 錯誤的故障
3、proxy_buffering
語法: proxy_buffering on|off
默認值: proxy_buffering on
上下文: http, server, location
作用: 這個參數用來控制是否打開后端響應內容的緩沖區,如果這個設置為off,那么proxy_buffers和proxy_busy_buffers_size這兩個指令將會失效。 但是無論proxy_buffering是否開啟,對proxy_buffer_size都是生效的。
proxy_buffering開啟后,nginx會把后端返回的內容先放到緩沖區,然后在返回給客戶端(邊收邊傳)
如果響應內容無法放到內存里,會被寫到磁盤上
如果proxy_buffering關閉,nginx立即把從后端接收到響應內容傳送給客戶端,每次取得
4、
proxy_temp_path path [Level 1 [ Level 2 [ Level 3]]]
案例;

proxy_max_temp_file_size #size
該離職用于配置所有臨時文件的總體大小,存放在磁盤上臨時文件大小不能超過該配置值
案例:
proxy_max_temp_file_size 1024;
proxy_temp_file_write_size:
該指令用于配置同時寫入臨時文件的數據量的總大小,
一般設置為8k或16k。
案例:
proxy_buffer_size 256k; #代理請求緩沖區,會保存用戶的頭信息以供nginx進行處理
proxy_buffers 4 256k; #同上,告訴nginx保存單個用幾個buffer最大用多少空間
proxy_busy_buffers_size 256k; #如果系統很忙時候可以申請最大proxy_buffers
proxy_temp_file_write_size 256k; #proxy緩存臨時文件的大小
location /bbs/ {
proxy_pass http://server;
proxy_set_header host $Host;
proxy_buffering on;
proxy_buffers 8 4k;
proxy_buffer_size 4k;
proxy_temp_path /var/tmp/nginx/buffer 1 2;
proxy_max_temp_file_size 1024;
}
三、proxy_pass
語法:Syntax: proxy_pass URL;
Default: —
Context: location, if in location, limit_except
案例:
location /name/ {
proxy_pass http://127.0.0.1/remote/;
}
location /some/path/ {
proxy_pass http://127.0.0.1;
}
location /name/ {
proxy_pass http://127.0.0.1$request_uri;
}
注意:
1、如果location采用了模式匹配 ~ ~*, 該url會直接補在后面
比如
location ~* /test/a.html {
proxy_pass http://10.100.100.2
}
代理服務器會把/test/a.html直接補在后面 http://10.100.100.2/test/a.html
2、如果加了rewrite,會把重寫后的地址,直接補在后面
四、proxy_set_header
Syntax: proxy_set_header field value;
Default:
proxy_set_header Host $proxy_host;
proxy_set_header Connection close;
Context: http, server, location
案例:
proxy_set_header Host $host:$proxy_port;
proxy_set_header Host $host;
If the value of a header field is an empty string then this field will not be passed to a proxied server:
proxy_set_header Accept-Encoding "";
五、設置一個臨時文件的
Syntax: proxy_max_temp_file_size size;
Default:
proxy_max_temp_file_size 1024m;
Context: http, server, location
第二部分: proxy_ssl相關的

案例:
proxy_set_header Client-Cert $ssl_client_cert; # 將客戶端證書放到http頭中傳遞給后端的tomcat
proxy_ssl_certificate localhost.pem; # 如果后端的tomcat也要求客戶端認證,則nginx與tomcat建立連接時會把該證書發送給tomcat
proxy_ssl_certificate_key localhost.key;
proxy_ssl_trusted_certificate chain.pem; # 如果啟用了proxy_ssl_verify,則使用該文件中的CA公鑰驗證后端tomcat的證書
proxy_ssl_verify on; # nginx是否驗證后端tomcat的證書
proxy_ssl_verify_depth 2;
第三部分:超時時常
1、 proxy_connect_timeout time;
默認為60s
代理服務器連接到后端服務器的超時時間(與upstream服務器的連接超時時間)
2、proxy_send_timeout 默認為60s
該指令配置nginx服務向后端被代理服務器發出write請求后,等待響應的超時時間
3、proxy_read_timeout
該指令配置nginx服務器向后端被代理服務器發出read請求后,等待響應的超時時間
默認為60s
4、proxy_send_timeout
這個指定設置了發送請求給upstream服務器的超時時間
默認為60s
- 第一部分:Nginx Web服務
- 第一章: Nginx的初探
- 第二章:Nginx的安裝部署
- 第一節:在centos6上通過Yum安裝Nginx
- 第二節:在Centos7上通過Yum安裝nginx
- 第三節:編譯安裝Nginx服務
- 第四節: Nginx編譯參數詳解
- 第五節: Nginx的啟動腳本
- 第六節:Nginx的shell腳本安裝
- 第七節:nginx服務的平滑升級
- 第三章:Nginx服務基礎配置
- 第一節: 配置運行nginx服務器用戶
- 第二節:配置運行生成的worker processes進程數
- 第三節:配置Nginx進程PID存放路徑
- 第四節:定義MIME類型
- 第五節:自定義nginx的訪問日志
- 第六節:主配置段(main)常用的配置
- 第七節:http段(核心)常用的配置命令
- 第八節:配置nginx中的location段
- 第九節: 基于IP的訪問控制
- 第十節:基于用戶的訪問控制
- 第十一節:Nginx定義status狀態頁
- 第十二節:Nginx服務器Rewrite重寫
- 第十三節:Nginx服務配置防盜鏈
- 第十四節:nginx軟件的優點
- 第四章:Nginx服務器的優化配置
- 第一節:nginx.conf配置文件基本參數優化
- 第二節:fastcgi調優
- 第三節:Gzip調優
- 第四節:expires緩存調優
- 第五節:內核參數優化
- 第六節: Nginx之——413 修改上傳文件大小限制
- 第五章:Nginx虛擬主機的配置
- 第一節:基于名稱的虛擬主機
- 第二節:通過shell腳本添加虛擬主機
- 第六章:Nginx常用模塊指令詳解
- 第一節:ngx_http_realip_module
- 第二節:http_image_filter_module
- 第三節:tengine中配置consistent hash module
- 第四節:ngx_http_userid_module
- 第七章:Nginx服務器配置HTTPS訪問
- 第八章: Nginx服務器日志切割
- 第二部分:Nginx負載均衡反向代理服務
- 第一章:Nginx進階參數詳解
- 第一節:proxy_module參數詳解
- 第二節:upstream_module參數詳解
- 第四章:Nginx反向代理服務
- 第一節:Nginx反向代理配置參數詳解
- 第二節:Nginx反向代理服務配置案例
- 第三節:Nginx緩存
- 第四節: Nginx中fastcgi模塊
- 第五節:nginx+fastcgi實現動靜分離架構
- 第五章:Nginx負載均衡
- 第一節:ngx_http_upstream_module常見指令
- 第二節:調度方法
- 第三節:健康狀態檢查