Прошу разрешить ситуацию по синтаксису.

Pianinorama nginx-forum на forum.nginx.org
Пн Июл 1 14:01:36 UTC 2019


Добрый день.

Есть вот такой фрагмент конфига:

location ~* ^(.*)(/static/.*)(jpg|jpeg|png)$  {
        set $webp  $1$2webp;
        set $rootFile "${document_root}${webp}";
        if ($http_accept ~* "webp"){set $test  A;}
        if (-f $rootFile) {set $test "${test}B";}
        if ($test = AB) {
                add_header Vary Accept;
                rewrite (.*) $webp break;
        }
}

Хотелось уйти от большого количества IF. Сделал вот так (опускаем
location):

set $webp $1$2webp;
set $rootFile "${document_root}${webp}";
map "$http_accept ~*" $test {
    "webp"  A;}
try_files $rootFile {set $test "${test}B";}
if ($test = AB) {
    add_header Vary Accept;
    rewrite (.*) $webp break;
}

Есть сильное сомнение что сработает конструкция в try_files. Да и в рамках
map тоже сильно сомневаюсь.
Сможете кто-то подсказать, как сделать проще и изящнее?
Заранее спасибо.

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,284703,284703#msg-284703



Подробная информация о списке рассылки nginx-ru