On 24.06.2015 19:57, Валентин Бартенев wrote:
>>> location /info {
>>> fastcgi_param SCRIPT_FILENAME /www/info.php;
>>> include fastcgi_params;
>>> fastcgi_pass 127.0.0.1:9000 http://127.0.0.1:9000;
>>> }
>> чтобы полное счастье наступило, лучше делать всегда так,
>> что include fastcgi_params; будет первой строкой
>> в блоке, fastcgi_pass - последней, а между ними -
>> директивы fastcgi_param.
> Это не поможет. Разве что только некоторые реализации FastCGI
> берут только последнее значение параметра, но передаваться всегда
> будут оба. И нет никак гарантий, как это будет обработано.
По крайней мере, php-fpm обрабатывает только последний параметр,
как и ожидалось, и вряд ли это уже изменится в новых версиях PHP.
А зачем такое странное поведение fastcgi_param было реализовано?
- https://en.wikipedia.org/wiki/Principle_of_least_astonishment
Например, "аналогичная" по своей сути директива proxy_set_header
переопределяет существующее значение, а не добавляет еще один header.
Тем более, что в протоколе CGI, на котором основан протокол FastCGI
эти параметры передаются скрипту в виде переменных окружения,
и там даже теоретически невозможно сделать несколько значений
всегда будет использовано только последнее значение параметра.
Очень странная это feature, она больше похожа на bug
Есть ли шансы, что этот bug будет исправлен в nginx?
--
Best regards,
Gena
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru