Игорь, спасибо за комментарии!
>> Нет. Во-первых, "if" работает задолго до того, как nginx определяет, что
будет делаться проксирование.
Так ведь и замечательно, всё, что требуется - установить для этого грядущего кеширования / проксирования его параметр.
>> А во-вторых, основаня проблема в том, что proxy_cache_key должен быть известен ДО обращения к бэкенду.
Насколько я понял, если весь путь целиком неизвестен, то обращение к бэкэнду будет проходить без кеша.
Ведь следующая конструкция работает вполне корректно и до обращения к бэкэнду, куки же неизвестна при первом запросе.
proxy_cache_key "$scheme://$proxy_host$request_uri|$cookie_PHPSESSID";