Как использовать php-fpm в режиме tcp на внешнем компьютере?

Я использую php-fpm поверх TCP, потому что я намерен сбалансировать его нагрузку.

Должен ли я иметь файлы PHP на каждом сервере?

Или могу Я храню его на веб-сервере (Lighttpd)? Я получаю 404 Ошибка при попытке запросить простой файл 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

Примечание. Он запускается внутри докера для имитации этого состояния. Если для отладки такого поведения необходима дополнительная информация о докере, сообщите мне.

0
задан 14 September 2017 в 02:42
1 ответ

Вам необходимо иметь файлы PHP на серверах, на которых работает PHP-FPM. Lighttpd передает только запрос PHP-FPM, а не файлы, содержащие его содержимое.

Вам также необходимо иметь все возможные ресурсы, которые сценарии PHP используют на серверах PHP-FPM.

Одним из вариантов достижения этого является чтобы машина lighttpd обменивалась файлами через сетевую файловую систему. Однако это может иметь проблемы с производительностью.

Другой вариант - кластерная файловая система.

Я использовал демон lsyncd для синхронизации файлов из одной системы в несколько мест назначения. Таким образом, все серверы PHP-FPM имеют локальные копии сценариев, и при доступе к файлам не возникает дополнительных затрат на производительность

.
2
ответ дан 4 December 2019 в 13:30

Теги

Похожие вопросы