Replicando mod_fastcgi com ProxyPassMatch (configuração PHP-FPM)

1

Eu quero mudar do Apache 2.2 para o Apache 2.4, mas não há mod_fastcgi e o caminho de atualização recomendado é mod_proxy_fcgi

No entanto, não consigo descobrir como realizar o seguinte:

<IfModule mod_fastcgi.c>
    Alias /php5.fcgi /usr/local/www/fastcgi/php5.fcgi
    FastCGIExternalServer /usr/local/www/fastcgi/php5.fcgi -flush -host 127.0.0.1:9000
    AddType application/x-httpd-fastphp5 .php
    Action application/x-httpd-fastphp5 /php5.fcgi

    <Directory "/usr/local/www/fastcgi/">
        Order deny,allow
        Deny from all
        <Files "php5.fcgi">
            Order allow,deny
            Allow from all
        </Files>
    </Directory>
</IfModule>

Isso permite que todos os hosts virtuais e tudo o que requer PHP use um único processo do PHP-FPM, o novo ProxyPassMatch requer que eu configure uma entrada individual para cada vhost, o que é demorado e propenso a erros ...

ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/path/to/vhost/$1

Por enquanto, voltei ao Apache 2.2, mas adoraria encontrar uma solução para esse problema.

    
por X-Istence 07.04.2014 / 03:41

2 respostas

1

Você pode usar as variáveis de servidor para obter o que deseja: a resposta desta pergunta pode ajudar você:

0-is-not -replaced-by-server-name-when-used-with-apaches-proxypassmatch

    
por 16.04.2014 / 09:55
0

Antes de mais nada, você precisa ter clareza sobre a possibilidade de ter pools separados de processos por domínio. Se fizer isso, você precisará mapear domínios para uma porta fastgi separada para cada pool.

A abordagem de configuração sugerida, ou algo parecido, é necessária se você tiver um pool de processos PHP para cada domínio. Se você não fizer isso, todos os seus domínios terão que ser executados usando o mesmo userID, o que os torna bastante expostos um ao outro, por exemplo, se forem clientes hospedados separados. Se eles são todo o seu próprio material, e não há muito para proteger, então talvez você não se importe tanto. Por exemplo, se você está apenas estacionando domínios, então o usuário por domínio é provavelmente um desperdício de recursos.

Se você estiver hospedando sites de muitas pessoas, então eu acho que você é responsável. Você deve passar a ter um pool de processos por usuário. Eu não estou dizendo que vai ser uma transição simples, e sim, há problemas de recursos, embora a parte de gerenciamento de configuração seja relativamente fácil. Você vai querer algum tipo de sistema de script para gerar a configuração. Minha ferramenta de escolha para essas coisas é fantoche, mas há muitas alternativas.

Se você seguir esse conselho ou não, primeiro você quer tomar essa decisão e então reformular sua pergunta sobre a mecânica de como realizar o que você quer.

    
por 20.04.2014 / 16:39