[Unit] Миграция с fastcgi и её подводные камни
Vadim A. Misbakh-Soloviov
nginx на mva.name
Вт Июл 2 07:21:53 UTC 2019
Здравствуйте!
Пытаясь смигрировать очередной проект с PHP-FPM на Unit я в очередной раз
столкнулся с проблемой того, что у fastcgi есть такая полезная штука как
split_path_info, где можно задать какая часть URI является значением
SCRIPT_NAME (да и вообще существует возможность динамического формирования
этого значения при запросе), а какая - идёт в PATH_INFO.
Сама по себе переменная PATH_INFO (как доступное значение для приложения
внутри массива $_SERVER) - ещё пол беды. Есть, конечно, приложения, которые
рассчитывают на него, но это вторично по отношению к тому, что ну уж **очень**
не хватает возможности динамически задавать значение "script" (aka SCRIPT_NAME
в fcgi) для приложения в Юните.
Т.е. чтобы весь URI как есть передался в сообщённый в заголовках (ну а как
ещё? Не вижу иного способа передать информацию Юниту от NgX) скрипт.
Без такой возможности приходится городить по 100500 блоков application для
каждого потенциально возможного "script" (хардкодить все значения, в общем).
Что, если честно, делает меня грустной пандой.
Соответствено, сопровождение большинства приложений, которые из коробки
работают с ЧПУ (а таких нынче большинство) превращается в пытку :'(
А уж если они ещё и о SEO решают заботиться по примеру вордпресса и внаглую
редиректить запросы типа "/scriptname.php?$uri" на "/?$uri" (явно полагаясь на
то, что SCRIPT_NAME им передаётся и так), всё выходит на новый уровень...
В общем, подскажите, пожалуйста:
1) есть ли возможность как-то передавать значения конфигурационных директив
приложения в заголовках запроса?
2) каковы шансы того, что если п.1 не является осуществимым сейчас, вы это
сделаете по реквесту из списка рассылки? :)
2а) и каковы шансы того, что это произойдёт в ближайших релизах? :)
Подробная информация о списке рассылки nginx-ru