负载平衡nginx代理中的共享缓存内容

负载平衡nginx代理中的共享缓存内容,nginx,Nginx,密钥区域“共享”内存区域如何为多个节点工作?如果它在内存中,如何共享?任何不向nginx()添加自定义模块(如SR Cache)的替代方案?nginx不能在节点之间共享基于磁盘的缓存。在共享磁盘上放置缓存也是一个坏主意,这是一个糟糕的设计。共享磁盘的任何网络故障、由于网络延迟和分发锁累积而导致的任何高延迟都会显著降低nginx的性能 将缓存保留在本地磁盘上。如果要使用多个节点作为负载平衡,则可以使用缓存分片。每个节点将接收部分请求并缓存它。如果目标是HA,则每个节点都应该保留自己的完整缓存 关于

密钥区域“共享”内存区域如何为多个节点工作?如果它在内存中,如何共享?任何不向nginx()添加自定义模块(如SR Cache)的替代方案?

nginx不能在节点之间共享基于磁盘的缓存。在共享磁盘上放置缓存也是一个坏主意,这是一个糟糕的设计。共享磁盘的任何网络故障、由于网络延迟和分发锁累积而导致的任何高延迟都会显著降低nginx的性能

将缓存保留在本地磁盘上。如果要使用多个节点作为负载平衡,则可以使用缓存分片。每个节点将接收部分请求并缓存它。如果目标是HA,则每个节点都应该保留自己的完整缓存

关于所有这些案例的更多信息,您可以在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;
            }