Назад | Перейти на главную страницу

Возможно ли иметь 2 блока местоположения nginx с одинаковыми критериями соответствия?

Например, если я хочу разделить свой блок предотвращения горячей ссылки от блока определения кеширования и поместить их в отдельные .conf файл, который будет включен последним в main.conf, будет ли nginx соответствовать только первому?

location ~* \.(?:jpg|jpeg|gif|png|ico)$ {

        valid_referers none blocked somedomain.com;
        if ($invalid_referer) {
            return 403;
        }

}

...

location ~* \.(?:jpg|jpeg|gif|png|ico)$ {

        expires 1M;
        add_header Cache-Control "public";

}

Нет, я не верю, что это возможно из-за того, как nginx обрабатывает файл (ы) конфигурации. При обработке запроса nginx сопоставляет единственный блок местоположения. Итак, если у вас есть несколько блоков местоположения с одинаковыми критериями соответствия, будет использоваться только содержимое первого блока. Ознакомьтесь с документацией по фазам nginx:

http://wiki.nginx.org/HttpCoreModule#location