Я использую php-fpm поверх TCP, потому что я намерен сбалансировать его нагрузку.
Должен ли я иметь файлы PHP на каждом сервере?
Или можно хранить на веб-сервере (Lighttpd)? Я получаю 404 Error
при попытке запросить простой файл php. Этот файл хранится на сервере lighttpd, а php-fpm работает на другом компьютере.
Это моя конфигурация на lighttpd:
server.modules += ( "mod_fastcgi" )
fastcgi.debug = 1
fastcgi.server += ( ".php" =>
((
"host" => "10.5.0.3",
"port" => "9000",
"broken-scriptfilename" => "enable"
))
)
И конфигурация пула php-fpm:
[www]
listen = 127.0.0.1:9000
user = www-data
group = www-data
pm = ondemand
pm.max_children = 5
pm.start_servers = 2
pm.process_idle_timeout = 10s;
pm.max_requests = 500
Журнал PHP-FPM:
[13-Sep-2017 20:22:54] NOTICE: fpm is running, pid 1
[13-Sep-2017 20:22:54] NOTICE: ready to handle connections
10.5.0.2 - 13/Sep/2017:20:24:50 -0300 "GET /info.php" 404
И журнал lighttpd:
2017-09-13 20:24:50: (configfile-glue.c.615) 7 (uncached) result: false
2017-09-13 20:24:50: (response.c.350) -- splitting Request-URI
2017-09-13 20:24:50: (response.c.351) Request-URI : /info.php
2017-09-13 20:24:50: (response.c.352) URI-scheme : http
2017-09-13 20:24:50: (response.c.353) URI-authority : localhost
2017-09-13 20:24:50: (response.c.354) URI-path (raw) : /info.php
2017-09-13 20:24:50: (response.c.355) URI-path (clean): /info.php
2017-09-13 20:24:50: (response.c.356) URI-query :
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 1 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 2 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 3 (cached) result: true
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 4 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 5 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 6 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 7 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 1 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 2 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 3 (cached) result: true
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 4 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 5 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 6 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 7 (cached) result: false
2017-09-13 20:24:50: (mod_access.c.148) -- mod_access_uri_handler called
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 1 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 2 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 3 (cached) result: true
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 4 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 5 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 6 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 7 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 1 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 2 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 3 (cached) result: true
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 4 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 5 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 6 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 7 (cached) result: false
2017-09-13 20:24:50: (response.c.490) -- before doc_root
2017-09-13 20:24:50: (response.c.491) Doc-Root : /var/www
2017-09-13 20:24:50: (response.c.492) Rel-Path : /info.php
2017-09-13 20:24:50: (response.c.493) Path :
2017-09-13 20:24:50: (response.c.542) -- after doc_root
2017-09-13 20:24:50: (response.c.543) Doc-Root : /var/www
2017-09-13 20:24:50: (response.c.544) Rel-Path : /info.php
2017-09-13 20:24:50: (response.c.545) Path : /var/www/info.php
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 1 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 2 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 3 (cached) result: true
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 4 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 5 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 6 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 7 (cached) result: false
2017-09-13 20:24:50: (response.c.562) -- logical -> physical
2017-09-13 20:24:50: (response.c.563) Doc-Root : /var/www
2017-09-13 20:24:50: (response.c.564) Basedir : /var/www
2017-09-13 20:24:50: (response.c.565) Rel-Path : /info.php
2017-09-13 20:24:50: (response.c.566) Path : /var/www/info.php
2017-09-13 20:24:50: (response.c.583) -- handling physical path
2017-09-13 20:24:50: (response.c.584) Path : /var/www/info.php
2017-09-13 20:24:50: (response.c.591) -- file found
2017-09-13 20:24:50: (response.c.592) Path : /var/www/info.php
2017-09-13 20:24:50: (response.c.753) -- handling subrequest
2017-09-13 20:24:50: (response.c.754) Path : /var/www/info.php
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 1 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 2 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 3 (cached) result: true
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 4 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 5 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 6 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 7 (cached) result: false
2017-09-13 20:24:50: (mod_access.c.148) -- mod_access_uri_handler called
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 1 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 2 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 3 (cached) result: true
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 4 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 5 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 6 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 7 (cached) result: false
2017-09-13 20:24:50: (mod_compress.c.839) -- handling file as static file
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 1 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 2 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 3 (cached) result: true
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 4 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 5 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 6 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 7 (cached) result: false
2017-09-13 20:24:50: (mod_fastcgi.c.3500) handling it in mod_fastcgi
2017-09-13 20:24:50: (mod_fastcgi.c.2875) got proc: pid: 0 socket: tcp:10.5.0.3:9000 load: 1
2017-09-13 20:24:50: (mod_fastcgi.c.2543) FastCGI-stderr: Primary script unknown
2017-09-13 20:24:50: (mod_fastcgi.c.1642) released proc: pid: 0 socket: tcp:10.5.0.3:9000 load: 0
2017-09-13 20:24:50: (response.c.122) Response-Header: \nHTTP/1.1 404 Not Found\r\nCache-Control: no-cache\r\nX-Powered-By: PHP/7.1.9\r\nContent-type: text/html; charset=UTF-8\r\nContent-Length: 16\r\nDate: Wed, 13 Sep 2017 23:24:50 GMT\r\nServer: lighttpd/1.4.45\r\n\r\n
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 1 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 2 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 3 (cached) result: true
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 4 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 5 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 6 (cached) result: false
2017-09-13 20:24:50: (configfile-glue.c.694) === start of condition block ===
2017-09-13 20:24:50: (configfile-glue.c.622) 7 (cached) result: false
Примечание. Он работает внутри докера для имитации этого состояния. Если для отладки этого поведения необходима дополнительная информация о докере, сообщите мне об этом.
Вам необходимо иметь файлы PHP на серверах, где работает PHP-FPM. Lighttpd передает только запрос PHP-FPM, а не файлы, содержащие его содержимое.
Вам также необходимо иметь все возможные ресурсы, которые скрипты PHP используют на серверах PHP-FPM.
Один из вариантов достижения этого - разрешить машине lighttpd совместно использовать файлы в сетевой файловой системе. Однако это может иметь проблемы с производительностью.
Другой вариант - кластерная файловая система.
я использовал lsyncd
демон для синхронизации файлов из одной системы в несколько мест назначения. Таким образом, все серверы PHP-FPM имеют локальные копии скриптов, и при доступе к файлам не возникает дополнительных затрат на производительность.