proxy_buffer代理緩沖區


一:代理緩沖區

  • 簡介
proxy_buffering開啟的情況下,nignx會把后端返回的內容先放到緩沖區當中,然后再返回給客戶端(邊收邊傳,不是全部接收完再傳給客戶端)。 臨時文件由proxy_max_temp_file_size和proxy_temp_file_write_size這兩個指令決定的。

如果proxy_buffering關閉,那么nginx會立即把從后端收到的響應內容傳送給客戶端,每次取的大小為proxy_buffer_size的大小,這樣效率肯定會比較低。
1.代理緩存區模塊介紹
#nignx會把后端返回的內容先放到緩沖區當中,然后再返回給客戶端,邊收邊傳, 不是全部接收完再傳給客戶端
Syntax: proxy_buffering on | off;
Default: proxy_buffering on;
Context: http, server, location
 
#設置nginx代理保存用戶頭信息的緩沖區大小
Syntax: proxy_buffer_size size;
Default: proxy_buffer_size 4k|8k;
Context: http, server, location
 
#proxy_buffers 緩沖區
Syntax: proxy_buffers number size;
Default: proxy_buffers 8 4k|8k;
Context: http, server, location

# 控制是否打開后端響應內容的緩存區(on開啟)
proxy_buffering on;
# 后端服務器的響應頭會放到proxy_buffer_size當中
proxy_buffer_size 8k;
# 緩存區8個,每個緩存區8k大小
proxy_buffers 8 8k;

二:案例

  • lb01服務器
1.配置文件
[root@lb01 conf.d]# vim /etc/nginx/conf.d/game.conf 

image

2.測試
nginx -t
3.重啟
systemctl restart nginx
4.lb01服務器(負載均衡)
  • 將nginx模塊設置到全局變量
cd /etc/nginx
[root@lb01 nginx]# vim proxy_params

image

# 用戶請求的時候HOST的值是www.game.com, 那么代理服務會像后端傳遞請求的www.game.com
proxy_set_header Host $http_host;
# 將$remote_addr的值放進變量X-Real-IP中,$remote_addr的值為客戶端的ip
# (沒代理情況下記錄客戶端ip)
proxy_set_header X-Real-IP $remote_addr;
# 客戶端通過代理服務訪問后端服務, 后端服務通過該變量會記錄真實客戶端地址
# (有代理情況下記錄客戶端ip)
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# -----------------------------------------------------------------------

#  代理到后端的TCP連接、響應、返回等超時時間
# (代理與后端服務器連接時間)
proxy_connect_timeout 1s;
# (后端服務器返回代理數據響應時間)
proxy_read_timeout 3s;
# (后端服務器數據回傳nginx代理時間)
proxy_send_timeout 3s;
#--------------------------------------------------------------------------

# 控制是否打開后端響應內容的緩存區(on開啟)
proxy_buffering on;
# 后端服務器的響應頭會放到proxy_buffer_size當中
proxy_buffer_size 8k;
# 緩存區8個,每個緩存區8k大小
proxy_buffers 8 8k;
5.網址配置文件
[root@lb01 nginx]# vim /etc/nginx/conf.d/game.conf

1.將以下模塊刪除,因設置了全局變量配置文件
2.設置驅動文件路徑
include /etc/nginx/proxy_params;

image

6.測試
nginx -t
7.重啟
systecmtl restart nginx
8.DNS解析

image

9.網址測試
www.game.com
10.日志實時監控
web01服務器
[root@web01 conf.d]# tail -f /var/log/nginx/access.log
···
![image](https://img2020.cnblogs.com/blog/2608805/202201/2608805-20220106231913007-1939435886.png)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM