ta习惯 ~ 2025-01-10 09:53 采纳率: 50%
浏览 15

关于两台 nginx 缓存如何同步

我用两台 nginx 做本地缓存 ,又用另一台做负载均衡器 但是无法做到缓存同步 ,我试过简单的复制过去是完全不能用的!大家有什么好的方法或建议嘛!感谢大家

  • 写回答

3条回答 默认 最新

  • 道友老李 JWE233286一种基于机器视觉的水表指针读数识别及修正的方法 专利发明者 2025-01-10 09:54
    关注
    让【道友老李】来帮你解答,本回答参考gpt编写,并整理提供,如果还有疑问可以点击头像关注私信或评论。
    如果答案让您满意,请采纳、关注,非常感谢!
    为了实现多台Nginx之间的本地缓存同步,可以考虑使用Nginx自带的缓存共享模块ngx_http_proxy_module。这个模块允许多个Nginx实例之间共享缓存数据,从而实现缓存同步。 具体步骤如下:
    1. 在所有的Nginx实例中都启用ngx_http_proxy_module模块。
    2. 在Nginx配置文件中添加如下配置:
    proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m;
    server {
        listen 80;
        server_name example.com;
        location / {
            proxy_pass http://backend;
            proxy_cache my_cache;
            proxy_cache_key $host$uri$is_args$args;
            proxy_cache_valid 200 302 10m;
            proxy_cache_valid 404 10s;
        }
        location /purge {
            proxy_cache_purge my_cache $uri$is_args$args;
        }
        upstream backend {
            server backend1;
            server backend2;
            server backend3;
        }
    }
    
    1. 在每台Nginx中配置相同的缓存目录和缓存名称。
    2. 通过向其中一台Nginx服务器发起PURGE请求,可以清除所有Nginx实例中相同URL的缓存。 这样配置之后,当有变更需要缓存同步时,只需清除一台Nginx服务器的缓存即可,其他Nginx服务器会在下次请求时重新获取最新的缓存数据。 希望以上方法对您有帮助。如果有任何疑问或需要进一步帮助,请随时问我。
    评论

报告相同问题?

问题事件

  • 创建了问题 1月10日