
Я следовал нескольким руководствам и настроил 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.