תחשבו על התרחיש הבא:
יש לכם אתר עם עשרות אלפי מבקרים בדקה, אתם מפעילים שרת Reverse Proxy עם Cache ויש לכם בממוצע 50 אלף איש באתר בדקה, נניח שתוקף העמוד הראשי פג (Cache-Control) ויש 5000 בקשות לדף הבית באותו רגע, ללא קינפוג נכון של שרת ה-Reverse Proxy, כדי לרענן את דף הבית השרת יעביר את כל הבקשות לשרתי ה-Backend, שרתי ה-Backend לא יכולים לעמוד בעומס כזה ולכן ייתקעו, כמה שניות לאחר מכן שרת ה-Reverse Proxy יעביר עוד אלפי בקשות ל-Backend התקוע ויתחיל להחזיר אלפי הודעות שגיאה עם Proxy read timeout למאות הבקשות הראשונות והמרחק מכאן לקדחת לא רחוק בכלל.
בדיוק בשביל זה יש את proxy_cache_lock, במקרה שיש מספר בקשות קובץ/דף ספציפי באותו הזמן, Nginx יחזיק את כל הבקשות בהמתנה ויעביר בקשה אחת בלבד אחורה ל-Backend, כאשר הפלט של הבקשה יתקבל, Nginx ישמור את הבקשה ב-Cache ויעביר את הפלט לכל אותם אלפי הבקשות שבהמתנה.
אגב את אותו הפתרון, ניתן ליישם גם ב-Varnish.