Наследование fastcgi_param
Amanda Sproule
paranoidchaos at gmail.com
Tue Jun 23 16:56:30 UTC 2015
Здравствуйте.
# uname -a
FreeBSD test 10.1-RELEASE-p10 FreeBSD 10.1-RELEASE-p10 #0: Wed May 13
06:54:13 UTC 2015
root at amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC
amd64
# nginx -v
nginx version: nginx/1.8.0
# php -v
5.6.10
Имеется такая тестовая конфигураци.
server {
....
....
root /www;
index index.html index.php;
include fastcgi_params;
fastcgi_index index.php;
location /info {
fastcgi_param SCRIPT_FILENAME /www/info.php;
fastcgi_pass 127.0.0.1:9000;
}
.....
......
}
Проблема в том, что в локейшене /info не наследуются fastcgi_param (все),
указанный в контексте server, если происходит переопределение одного
fastcgi_param параметра внутри локейшена. PHP-FPM возвращает код статуса
200 и пустой ответ. Экспериментальным путём выяснил, что минимальные
необходимые параметры передаваемые PHP-FPM следующие:
location /info {
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param SCRIPT_FILENAME /www/info.php;
fastcgi_pass 127.0.0.1:9000;
}
В этом случае PHP-FPM обрабатывает скрипт /www/info.php, но nginx не
передал все остальные fastcgi_param из файла fastcgi_params, которые должны
были быть унаследованы.
В документации описан момент
"""
Директивы наследуются с предыдущего уровня при условии, что на данном
уровне не описаны свои директивы fastcgi_param.
"""
выходит если я переопределяю (устанавливаю) какой-либо fastcgi_param параметр,
то наследования fastcgi_params вовсе отменяется? Для чего тогда это
наследование? Почему нельзя наследовать с верхнего уровня и иметь
возможность переопределить какой-либо параметр?
Спасибо.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20150623/2274444e/attachment-0001.html>
Подробная информация о списке рассылки nginx-ru