привет!

берем 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-le...@nginx.org

Ответить