Смотрим трафик на стороне php-fpm7
Код: Выделить всё
tcpdump -A -i eth0 port 9000
14:50:27.462230 IP 172.17.0.3.39250 > 0f9ece280dff.9000: Flags [P.], seq 1:473, ack 1, win 229, options [nop,nop,TS val 808910 ecr 808910], length 472
E....E@.@..~.........R#(6...?}......Z&.....
..W...W...........................QUERY_STRING..REQUEST_METHODGET..CONTENT_TYPE..CONTENT_LENGTH. SCRIPT_NAME/test.php. REQUEST_URI/test.php. DOCUMENT_URI/test.php..DOCUMENT_ROOT/web..SERVER_PROTOCOLHTTP/1.1..REQUEST_SCHEMEhttp..GATEWAY_INTERFACECGI/1.1..SERVER_SOFTWAREnginx/1.10.3.
REMOTE_ADDR172.17.0.1..REMOTE_PORT47824.
SERVER_ADDR172.17.0.3..SERVER_PORT80..SERVER_NAME..REDIRECT_STATUS200
HTTP_HOST172.17.0.3..HTTP_USER_AGENTcurl/7.47.0..HTTP_ACCEPT*/*......................
14:50:27.462256 IP 0f9ece280dff.9000 > 172.17.0.3.39250: Flags [.], ack 473, win 235, options [nop,nop,TS val 808910 ecr 808910], length 0
E..4..@.@.K.........#(.R?}..6..f....XN.....
..W...W.
14:50:27.462480 IP 0f9ece280dff.9000 > 172.17.0.3.39250: Flags [P.], seq 1:97, ack 473, win 235, options [nop,nop,TS val 808910 ecr 808910], length 96
E.....@.@.K,........#(.R?}..6..f....X......
..W...W......C..X-Powered-By: PHP/7.1.3
Content-type: text/html; charset=UTF-8
..................s:
Тестовая страница
Код: Выделить всё
<?php
phpinfo();
конфигурация php-fpm
Код: Выделить всё
cat /etc/php7/php-fpm.conf| grep -v ^";"|grep -v ^$
[global]
daemonize = no
include=/etc/php7/php-fpm.d/*.conf
/www #
# cat /etc/php7/php-fpm.d/www.conf | grep -v ^";"|grep -v ^$
[www]
user = nobody
group = nobody
listen = 9000
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
chdir = /
Пробовал подключить страницу статуса, добавлял строку pm.status_path = /status, результат неудачный, вывод пустой страницы.
Скармливал тестувую страницу php-cli, все отрабатывает без проблем.
Подскажите куда копать, в каком направлении двигаться.
И еще один вопрос.
Я не понимаю как работает связка web сервера и php сервера. Если смотреть конфигурацию, то сервер web пересылает запрос *.php на сервер приложений (фактически проксирует). Данные скриптов находятся на web сервере, в запросе они не передаются, это я проверял на рабочей конфигурации. Тогда совершенно не понятно, каким образом скрипты попадают для обработки на сервер приложений.
Когда сервер приложений и веб сервер расположены на одном хосте, то тут можно предположить, что серверу приложений в запросе указали путь к скриптам которые надо обработать. Вот для примера часть запроса в котором указаны переменные окружения "REQUEST_URI/test.php. DOCUMENT_URI/test.php..DOCUMENT_ROOT/web.." .
Когда веб сервер и сервер приложений расположены на разных хостах, то такой возможности нет. Получается нет данных, нечего возвращать, отдается пустая страница, но у других связки веб сервер, сервер приложений как то работают.