负载平衡nginx代理中的共享缓存内容
密钥区域“共享”内存区域如何为多个节点工作?如果它在内存中,如何共享?任何不向nginx()添加自定义模块(如SR Cache)的替代方案?nginx不能在节点之间共享基于磁盘的缓存。在共享磁盘上放置缓存也是一个坏主意,这是一个糟糕的设计。共享磁盘的任何网络故障、由于网络延迟和分发锁累积而导致的任何高延迟都会显著降低nginx的性能 将缓存保留在本地磁盘上。如果要使用多个节点作为负载平衡,则可以使用缓存分片。每个节点将接收部分请求并缓存它。如果目标是HA,则每个节点都应该保留自己的完整缓存 关于所有这些案例的更多信息,您可以在nginx站点上阅读:关于切分和关于HA负载平衡nginx代理中的共享缓存内容,nginx,Nginx,密钥区域“共享”内存区域如何为多个节点工作?如果它在内存中,如何共享?任何不向nginx()添加自定义模块(如SR Cache)的替代方案?nginx不能在节点之间共享基于磁盘的缓存。在共享磁盘上放置缓存也是一个坏主意,这是一个糟糕的设计。共享磁盘的任何网络故障、由于网络延迟和分发锁累积而导致的任何高延迟都会显著降低nginx的性能 将缓存保留在本地磁盘上。如果要使用多个节点作为负载平衡,则可以使用缓存分片。每个节点将接收部分请求并缓存它。如果目标是HA,则每个节点都应该保留自己的完整缓存 关于
<---> NGX CACHE - NODE A \
REQUESTS <---> LB <--> <----> SHARED FS (NAS)
<---> NGX CACHE - NODE B /
proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=my_zone:10m max_size=10g inactive=60m use_temp_path=off;
: : :
location ~* ^/api/rdPage.aspx {
resolver 10.0.0.1;
add_header X-Cache-Status $upstream_cache_status;
proxy_cache_bypass $http_pragma;
proxy_cache_key "$proxy_host$uri$request_body";
proxy_cache_valid 200 10m;
proxy_ignore_headers Cache-Control Expires Set-Cookie;
proxy_cache_methods POST;
proxy_cache_min_uses 0;
proxy_cache my_zone;
# WITH PROXY LB SERVER
proxy_pass http://api-server/rdPage.aspx$is_args$args;
proxy_headers_hash_bucket_size 128;
proxy_connect_timeout 15;
proxy_send_timeout 15;
proxy_read_timeout 1800;
}