Kami memiliki 8 server REST-ish API dengan Nginx menggunakan FastCGI dengan PHP-FPM untuk menangani permintaan. Kami saat ini menggunakan caching FastCGI Nginx '(seperti arahan fastcgi_cache_path
). Ini berarti bahwa respons API di-cache, tetapi ada cache terpisah untuk setiap server.
Apakah ada cara yang baik untuk berbagi penyimpanan cache di antara delapan server?
Kami telah mempertimbangkan untuk menggunakan Redis sebagai penyimpanan bersama, tetapi modul yang tersedia tampaknya membutuhkan perubahan aplikasi. Dalam beberapa kasus, kami mungkin ingin menyimpan tanggapan di luar kendali kami (alih-alih HTTP ke API eksternal). Idealnya, pengganti drop-in untuk caching built-in Nginx untuk FastCGI dan respons HTTP akan tersedia.
Jawaban:
Tampaknya ada posting blog yang agak baru di https://www.nginx.com/blog/shared-caches-nginx-plus-cache-clusters-part-1/ tentang masalah ini. Contoh pertama ini bisa berguna jika Anda menjalankan lebih dari dua server cache nginx.
Terutama bagian kedua dari posting yang terdengar menarik untuk kasus penggunaan saya saat ini, di mana saya ingin secara otomatis merangkak kembali item yang diubah ke dalam cache saya.
Ini harus bekerja dengan Versi open source NGINX juga. Pada dasarnya ini bekerja dengan memproksi permintaan yang di-cascade melalui masing-masing Server NGINX (Nginx-Cache1-> NGinx-Cache2-> Origin-Server) setiap server melakukan cache dari hulu yang relevan dan jika diinginkan dimungkinkan untuk membuat HA Cluster juga. https://www.nginx.com/blog/share-caches-nginx-plus-cache-clusters-part-2/
sumber