Re: условный CORS, if, try_files и fastcgi

Maxim K rogat1y на gmail.com
Сб Дек 3 10:58:21 UTC 2022


Убирайте if
в значение Access-Control-Allow-Origin подставляйте переменную из map,
например
map $http_origin $cors {
  default '';
  ~^https?://mydomain.com$ $http_origin;
}
server {
  ...
  location / {
    ...
    add_header Access-Control-Allow-Origin $cors;
  }
}

в случае пустой строки в переменной - заголовок не будет добавляться в
ответ.

сб, 3 дек. 2022 г. в 13:50, Илья Шипицин <chipitsine на gmail.com>:

> привет!
>
> берем nginx-1.23.2
> задача - проксировать на fastcgi только реально существующие на файловой
> системе файлы (чтобы всякие сканы типа /xmlrpc.php не отправлялись бы на
> fastcgi).
>
>
> классическое решение (работает)
>
>         location / {
>                 try_files $uri =404;
>                 fastcgi_pass unix:/run/php/php7.4-fpm.sock;
>
>                 fastcgi_index  index.php;
>                 fastcgi_param  SCRIPT_FILENAME
> $realpath_root$fastcgi_script_name;
>                 fastcgi_intercept_errors on;
>
>                 include fastcgi_params;
>         }
>
>
> однако try_files перестает решать задачу, если мы добавляем if (чуть
> упрощенный конфиг, просто для иллюстрации) - даже несуществующие файлы
> отправляются на fastcgi
>
>         location / {
>                 try_files $uri =404;
>                 fastcgi_pass unix:/run/php/php7.4-fpm.sock;
>
>                 fastcgi_index  index.php;
>                 fastcgi_param  SCRIPT_FILENAME
> $realpath_root$fastcgi_script_name;
>                 fastcgi_intercept_errors on;
>
>                 include fastcgi_params;
>
>                set $cors "true";
>
>                if ($cors = "true") {
>                        add_header 'Access-Control-Allow-Origin'
> "$http_origin";
>                }
>         }
>
>
>
> можно ли как-то во втором случае вернуть прежнее поведение try_files ?
>
> Илья Шипицин
>
>
> _______________________________________________
> nginx-ru mailing list -- nginx-ru на nginx.org
> To unsubscribe send an email to nginx-ru-leave на nginx.org
>
----------- следующая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20221203/70cb67b8/attachment.htm>


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