Configure diferentes pools PHP-FPM baseados em REQUEST_URI?

1

Ter um site que esteja manipulando todas as solicitações por /index.php e eu quero enviar a maioria das solicitações para um pool equilibrado de back-ups do PHP-FPM, mas determinados URIs que eu quero enviar para um único pool dedicado separadamente. O URI / admin será enviado para /index.php/admin, etc.

Eu quero enviar especificamente / api e / admin para um pool separado, enquanto todo o resto vai para o pool balanceado.

Eu tentei o seguinte, mas a linha REQUEST_URI só corresponde se eu der a ele um arquivo existente real (ou seja, eu posso combinar com /test.php se for um arquivo real no sistema de arquivos e solicitar esse URI) do que ser capaz de combinar locais que seriam enviados para index.php - Eu tentei ambos usando = ~ regex e == correspondência de seqüência de caracteres, e isso é definido no host virtual não. Htaccess. A seção Else sempre roda em vez do If

<FilesMatch "\.php$">
  <If "%{REQUEST_URI} == '/admin'">
    SetHandler "proxy:fcgi://localhost:9000/"
  </If>
  <Else>
    SetHandler "proxy:fcgi://localhost:8000/"
  </Else>
</FilesMatch>

REQUEST_URI que é passado para o PHP parece correto (ou seja, se o caminho solicitado é / admin, então /index.php/admin é chamado e eu posso ver REQUEST_URI na matriz PHP _SERVER sendo / admin), mas é possivelmente não está verdadeiramente correto neste momento no FilesMatch?

Eu originalmente tentei usar o SetHandler dentro do Location, mas parece que não funciona, ou pelo menos o FilesMatch o substitui. Não é possível usar arquivos (Match) dentro do local ...

edit:

Eu descobri que ProxyPass funciona dentro de Location (Match), então eu pude usar ProxyPass ao invés de SetHandler assim:

<FilesMatch "\.php$">
  SetHandler "proxy:fcgi://localhost:8000/"
</FilesMatch>
<LocationMatch "/admin">
  ProxyPass fcgi://localhost:9000/var/www/index.php/
</LocationMatch>

No entanto, gostaria de saber por que o método original que tentei não funcionou. O REQUEST_URI não existe realmente nesse ponto ou contém algo mais ou ...?

    
por BioSehnsucht 19.10.2017 / 02:20

0 respostas