여러 서버간에 공유되는 Nginx 캐시

요청을 처리하기 위해 PHP-FPM과 함께 FastCGI를 사용하는 Nginx를 갖춘 REST-ish API 서버 8 대가 있습니다. 우리는 현재 Nginx의 FastCGI 캐싱을 사용하고 있습니다 (와 같은 지시문 fastcgi_cache_path). 이는 API 응답이 캐시되지만 각 서버마다 별도의 캐시가 있음을 의미합니다.

8 개의 서버 모두에서 캐시 스토리지를 공유하는 좋은 방법이 있습니까?

Redis를 공유 스토리지로 사용하는 것을 고려했지만 사용 가능한 모듈에는 애플리케이션 변경이 필요한 것 같습니다. 경우에 따라 제어 외부에서 (HTTP를 통해 외부 API로) 응답을 캐시하려고 할 수 있습니다. 이상적으로, FastCGI 및 HTTP 응답의 Nginx 내장 캐싱을 대체 할 수있는 대체품을 사용할 수 있습니다.



답변

이 문제에 대해 https://www.nginx.com/blog/shared-caches-nginx-plus-cache-clusters-part-1/ 에 새로운 블로그 게시물이있는 것 같습니다 . 이 첫 번째 예는 두 개 이상의 nginx 캐시 서버를 실행하는 경우 유용 할 수 있습니다.

특히 게시물의 두 번째 부분은 현재 사용 사례에서 흥미로운 것으로 들리며 변경된 항목을 캐시에 자동으로 다시 크롤링하려고합니다.

NGINX의 오픈 소스 버전에서도 작동합니다. 기본적으로 각 NGINX 서버 (Nginx-Cache1-> NGinx-Cache2-> Origin-Server)를 통해 연결된 요청을 프록시하여 각 서버가 관련 업스트림에서 캐시하며 원하는 경우 HA 클러스터도 만들 수 있습니다.
https://www.nginx.com/blog/shared-caches-nginx-plus-cache-clusters-part-2/


답변


답글 남기기