
Segui alguns tutoriais e configurei o Apache para usar PHP FPM. No entanto, não entendo o que parte da SetHandler
linha está fazendo e, com base em alguns de meus experimentos, parece redundante. Eu tenho a linha:
SetHandler "proxy:unix:/run/php/php7.3-fpm.sock|fcgi://localhost"
Isso funciona esteja |fcgi://localhost
presente ou não.
Em vários lugares, como na configuração do Plesk, vi a parte fcgi://localhost
substituída porfcgi://127.0.0.1:9000
Qual é o propósito do |fcgi://localhost
? É redundante e pode ser removido?
O pipe que separa sock e fcgi deve sock|fcgi
ser interpretado como um 'ou', ou seja, se o soquete unix não estiver presente, use a conexão tcp?
Na configuração do meu pool FPM, tentei substituir a diretiva listen por um host e uma porta, também por apenas uma porta, mas não consigo fazê-la funcionar. Como você configuraria o PHP FPM para estar disponível via TCP em vez de um soquete unix? Não tenho motivos para querer fazer isso no momento, é apenas para aprender.
Finalmente. Este é o site de 'pilha' correto para fazer esta pergunta?
Edite para dizer que encontrei umum pequeno pedaço de documentaçãodo Apache. O exemplo final na seção de exemplos fala sobre o uso de |fcgi://something
no contexto de forçar uma solicitação de proxy reverso, mas eu realmente não entendo isso.
Responder1
A documentação indica claramente por que você deve incluí-lo, mesmo que não seja obrigatório:
Por motivos de desempenho, você desejará definir um trabalhador que represente o mesmo
fcgi://
back-end. O benefício deste formulário é que ele permite que o mapeamento normal do URI para o nome do arquivo ocorra no servidor e o resultado do sistema de arquivos local seja passado para o backend. Quando FastCGI é configurado desta forma, o servidor pode calcular o PATH_INFO mais preciso.