一:代理缓冲区

  • 简介
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

2.测试
nginx -t
3.重启
systemctl restart nginx
4.lb01服务器(负载均衡)
  • 将nginx模块设置到全局变量
cd /etc/nginx
[root@lb01 nginx]# vim proxy_params

# 用户请求的时候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;

6.测试
nginx -t
7.重启
systecmtl restart nginx
8.DNS解析

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)

最新文章

  1. maven webapp栽坑录
  2. 搭建自己的PHP框架心得(一)
  3. Ubuntu Server 14.04升级Ubuntu Server 16.04
  4. [LeetCode] Ugly Number
  5. mysql表导入到oracle
  6. ubuntu下安装花生壳
  7. IE与FF脚本兼容性问题
  8. 支付宝pc网页支付
  9. java 流输出的一些问题
  10. sessionStorage和localStorage的用法,不同点和相同点
  11. DSAPI实现简单的透明窗体
  12. 核主成分分析方法(KPCA)怎么理解?
  13. 小程序实践(十):textarea实现简单的编辑文本界面
  14. golang介绍
  15. setTimeout异步
  16. python3编写网络爬虫19-app爬取
  17. 【iCore1S 双核心板_ARM】例程二十:UART_IAP_ARM实验——更新升级STM32
  18. English trip V1 - B 22. Here,There and Everywhere 无处不在 Teacher:Taylor Key: Be + Ving
  19. mybatis学习七 typeAliases 别名
  20. vs调试程序时发现变量、类等程序找不到混乱问题

热门文章

  1. 【LeetCode】1094. Car Pooling 拼车
  2. 【LeetCode】102. Binary Tree Level Order Traversal 解题报告(Python)
  3. Intervals(poj1201)
  4. 1002 - Country Roads(light oj)
  5. 【JAVA今法修真】 第七章 洞天风云起,索引混乱平
  6. HTML网页设计基础笔记 • 【第4章 CSS3基础】
  7. 使用 windows bat 脚本命令一键实现快速配置JDK 环境变量
  8. 「影院售票系统」 · Java Swing + MySQL JDBC开发
  9. 编写Java程序,前方有 3km 的道路障碍,4 辆普通车不能通过,必须等到清障车完成作业离开后,才能继续行驶。用程序来模拟这一过程的发生
  10. PDF的信息提取的问题