简介
今天早上去看kong的日志的时候发现有大量的警告
an upstream response is buffered to a temporary file /usr/local/kong/proxy_temp/1/00/0000000001 while reading upstream
很显然是某一个缓冲区设置太小了,所以后端请求过来的文件被临时写入了/usr/local/kong/proxy_temp/1/00/0000000001
中,之后再发送到用户的浏览器
因为这种日志真的太多了,而且频繁创建文件读写硬盘对机器的性能也是会有一定影响,所以要把这个缓冲区变大
操作
百度了一下,大部分人碰到这种问题会修改下面的参数
1 | fastcgi_buffer_size 512k; |
但是这个只适用于php环境,我们kong只负责把流量往后端的nginx扔,所以要修改的是下面这些参数
1 | proxy_buffer_size |
我使用的是docker去搭建的环境,默认重启kong会根据自身的/etc/kong/kong.conf
文件重写/usr/local/kong/nginx-kong.conf
文件,所以我们的配置要在/etc/kong/kong.conf
下修改,但是配置文件中没有和proxy_buffer_size
相关的参数,我仔细看了一下,发现了下面几句
1 | # All configuration properties respecting the naming scheme |
这就很简单了,把/etc/kong/kong.conf
这个文件从容器里拷贝出来,添加下面几行
1 | nginx_http_proxy_buffer_size = 1024k |
之后挂载到容器中,在compose文件中写入
- "./kong.conf:/etc/kong/kong.conf"
之后重启
docker-compose down && docker-compose up -d
之后测试下,警告就没有了
欢迎关注Bboysoul的博客www.bboy.app
Have Fun