反向代理的缓存及buffer

反向代理的缓存及buffer

一、代理缓存设置

(1)定义缓存在http{}加入:

            Syntax:     proxy_cache_path path [levels=levels] [use_temp_path=on|off] keys_zone=name:size [inactive=time] [max_size=size] [manager_files=number] [manager_sleep=time] [manager_threshold=time] [loader_files=number] [loader_sleep=time] [loader_threshold=time] [purger=on|off] [purger_files=number] [purger_sleep=time] [purger_threshold=time];

            Default:     —

            Context:     http

            例如:

            proxy_cache_path /cache/nginx/ levels=1:2:3 keys_zone=cpe:32m inactive=20m;

            #缓存路径,几级子目录,每级子目录多少字段,缓存名字,缓存空间大小

 

(2)使用缓存(缓存可以定义多组,需要的时候可以调用一个或者多个)

            Syntax:     proxy_cache zone | off;

            Default:     proxy_cache off;

            Context:     http, server, location

            例如:

            proxy_cache cpe;

            #使用cpe缓存

 

(3)缓存的方法设置

            Syntax:     proxy_cache_methods GET | HEAD | POST …;

            Default:     proxy_cache_methods GET HEAD;

            Context:     http, server, location

            例如:

            proxy_cache_methods GET HEAD;

            #缓存方法为GET HEAD的;

 

(4)被请求多少次才会被缓存

            Syntax:     proxy_cache_min_uses number;

            Default:     proxy_cache_min_uses 1;

            Context:     http, server, location

            例如:

            proxy_cache_min_uses 1;

            #请求最小一次就缓存;

 

(5)删除缓存proxy_cache_purge

 

(6)proxy_cache_revalidate:缓存到起后是否重新检验

            Syntax:     proxy_cache_revalidate on | off;

            Default:     proxy_cache_revalidate off;

            Context:     http, server, location

            proxy_cache_revalidate on;

            #缓存到期后重新检查后,重新启用;

 

(7)缓存过期后,无法连接后端,是否使用过期的缓存,如何使用

            Syntax:     proxy_cache_use_stale error | timeout | invalid_header | updating | http_500 | http_502 | http_503 | http_504 | http_403 | http_404 | http_429 | off …;

            Default:     proxy_cache_use_stale off;

            Context:     http, server, location

            proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504 http_403 http_404;

            #为下面情况,可以使用过期缓存

 

(8)按时间定义不同缓存的相应码的

            Syntax:     proxy_cache_valid [code …] time;

            Default:     —

            Context:     http, server, location

 

            例如:

            proxy_cache_valid 200 302 10m;

            #缓存状态码为:200 302 10分钟;

            proxy_cache_valid 301 1h;

            #缓存状态码为:301的一小时;

            proxy_cache_valid any 1m;

            #缓存其它的1分钟;

 

(9)缓存配置案例

            (1)创建缓存文件夹

            # mkdir -pv /cache/nginx/

            # chown -R nginx:nginx /cache/nginx/

 

            (2)编辑配置文件在httpd段加入

            # vim nginx.conf

            proxy_cache_path /cache/nginx/ levels=1:2:3 keys_zone=cpe:32m inactive=20m;

            #缓存路径,几级子目录,每级子目录多少字段,缓存名字,缓存空间大小

 

            (3)在location中使用缓存,编辑配置文件server.conf在location段中加入使用缓存配置

            # vim /etc/nginx/conf.d/server.conf

            proxy_cache cpe;

            #使用cpe缓存

 

            (4)缓存优化配置,编辑配置文件server.conf在location段中加入使用缓存配置;

            # vim /etc/nginx/conf.d/server.conf

            proxy_cache_valid 200 302 10m;

            #缓存状态码为:200 302 10分钟;

            proxy_cache_valid 301 1h;

            #缓存状态码为:301的一小时;

            proxy_cache_valid any 1m;

            #缓存其它的1分钟;

            proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504 http_403 http_404;

            #为下面情况,可以使用过期缓存。

            proxy_cache_revalidate on;

            #缓存到期后重新检查后,重新启用;

            proxy_cache_min_uses 1;

            #请求最小一次就缓存;

            proxy_cache_methods GET HEAD;

            #缓存方法为GET HEAD的;

 

二、代理buffer相关配置

            (1)proxy_buffering 启用或禁用缓存代理服务器的响应。

            Syntax:     proxy_buffering on | off;

            Default:     proxy_buffering on;

            Context:     http, server, location

            proxy_buffering启用的时候,代理nginx服务收到上游服务器的响应,将立即被放入缓冲里(由the proxy_buffer_size 和 proxy_buffers 定义)。如果整个缓冲无法完全放入缓冲区里,一部分将被存到磁盘的临时文件中(由proxy_max_temp_file_size和 proxy_temp_file_write_size定义)。

            proxy_buffering关闭的时候,nginx将立即传递相应给客户端。nginx将不试图读取整个响应了。nginx最大每次从服务器收到的数据大小由proxy_buffer_size指定。

            proxy_buffering也可以通过从响应报文header:”X-Accel-Buffering” 传递”yes” or “no” 启用或者关闭。 也可以被proxy_ignore_headers参数忽略掉。

 

            (2)proxy_buffer_size 从代理后端服务器取得的第一部分的响应内容大小;

            Syntax:     proxy_buffer_size size;

            Default:     proxy_buffer_size 4k|8k;

            Context:     http, server, location

            该指令设置缓冲区大小,从代理后端服务器取得的第一部分的响应内容,会放到这里小的响应header通常位于这部分响应内容里边.默认来说,该缓冲区大小等于指令 proxy_buffers所设置的;但是,你可以把它设置得更小.

 

            (3)proxy_buffers 设定每个连接的缓冲数量以及大小。

            Syntax:     proxy_buffers number size;

            Default:     proxy_buffers 8 4k|8k;

            Context:     http, server, location

            默认情况等于内存窗口大小4k或者8k,基于平台配置。

 

            (4)proxy_busy_buffers_size

            Syntax:     proxy_busy_buffers_size size;

            Default:     proxy_busy_buffers_size 8k|16k;

            Context:     http, server, location

 

            (5)典型配置

            编辑配置文件在http{}加入:

            # vim nginx.conf

 

            proxy_buffer_size 8k;

         #代理首部缓冲大小

         proxy_buffers 4 128k;

             #单个连接缓冲大小

            proxy_busy_buffers_size 256k;

            #忙时缓冲大小

            proxy_temp_file_write_size 256k;

            #临时文件大小

            proxy_max_temp_file_size 128m;

            #最大临时文件大小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值