HTTP2 no Ubuntu 17.04 não funciona

0

Eu instalei o Ubuntu 17.04 no meu PC, configurei o Apache com o PHP 7 para trabalhar em alguns desenvolvimentos, mas quando tentei configurar o HTTP2 no meu Apache, ele não funcionava porque não é configurado para o Apache rodando mpm-prefork e não consigo desabilitar o mpm-prefork porque ele é usado pelo PHP 7, alguma idéia de como posso fazer isso funcionar?

Obrigado.

    
por jfha73 16.10.2017 / 01:10

1 resposta

2

O modelo prefork impõe algumas restrições sobre o HTTP, mesmo sem HTTP / 2, mas com o HTTP / 2, ele impede que muitos recursos do HTTP / 2 sejam usados. Como cada solicitação ocorre em um processo separado e não há multitarefas, o Apache não é capaz de multiplexá-las (atender a várias solicitações na mesma conexão TCP), a menos que altere a maneira como o prefork funciona de maneira bastante substancial, . Portanto, o suporte a HTTP / 2 é limitado a uma única solicitação por vez por conexão ao usar o prefork.

( Isto está documentado aqui )

Uma boa maneira moderna de integrar o PHP com um servidor web é usar o PHP-FPM (gerenciador de processos FastCGI embutido no PHP) e ter o servidor web retransmitindo as solicitações do PHP para isso, e receber suas respostas. Então você pode usar um servidor web multithreaded como o Apache com o MPM worker, ou um servidor web baseado em eventos como o Apache com o evento MPM, ou nginx (que é particularmente bom em HTTP / 2, devido à sua capacidade de manter milhares de conexões com muito pouca memória). Na verdade, esta é provavelmente a maneira mais comum de usar o PHP com o nginx, e eu também o vi usado no Apache2 antes por razões de segurança (por exemplo, ter diferentes aplicativos PHP sendo executados como usuários separados). O suporte ao HTTP / 2 também parece ser um motivo decente.

Existem muitos guias para configurar servidores web e PHP para usar o PHP-FPM.

    
por thomasrutter 16.10.2017 / 01:21