Синтаксис директивы Apache SetHandler при настройке PHP FPM

Синтаксис директивы Apache SetHandler при настройке PHP FPM

Я следовал нескольким руководствам и настроил Apache на использование PHP FPM. Однако я не понимаю, что SetHandlerделает часть строки, и на основе некоторых моих экспериментов она кажется избыточной. У меня есть строка:

SetHandler "proxy:unix:/run/php/php7.3-fpm.sock|fcgi://localhost"

Это работает независимо от того, |fcgi://localhostприсутствует ли .

В разных местах, например в конфигурации Plesk, я видел, как эта часть fcgi://localhostбыла заменена наfcgi://127.0.0.1:9000

Каково назначение |fcgi://localhost? Является ли он излишним и можно ли его удалить?

Следует ли интерпретировать канал, разделяющий sock и fcgi, sock|fcgiкак «или», означающий, что если сокет unix отсутствует, следует использовать вместо него соединение TCP?

В конфигурации моего пула FPM я пробовал заменить директиву listen на хост и порт, а также просто на порт, но, похоже, это не работает. Как бы вы настроили PHP FPM так, чтобы он был доступен через TCP, а не через сокет unix? У меня нет причин хотеть делать это сейчас, это просто для обучения.

Наконец. Это правильный сайт «стек», чтобы задать этот вопрос?


Редактировать, чтобы сказать, что я нашелнебольшой кусочек документациииз Apache. Последний пример в разделе примеров говорит об использовании |fcgi://somethingв контексте принудительного запроса обратного прокси, но я действительно этого не понимаю.

решение1

В документации четко указано, почему его следует включить, хотя это и не обязательно:

Из соображений производительности вам нужно будет определить работника, представляющего тот же fcgi://бэкенд. Преимущество этой формы в том, что она позволяет нормальному сопоставлению URI с именем файла происходить на сервере, а результат локальной файловой системы передается на бэкенд. Когда FastCGI настроен таким образом, сервер может вычислить наиболее точный PATH_INFO.

Связанный контент