Я работаю с Apache / 2.4.41 в коробке CentOS 7.6. У меня есть два разных пула php-fpm, работающих и прослушивающих разные порты, и я пытаюсь Apache отправлять запросы POST, PUT и DELETE в один пул, а остальные - в другой пул.
Я пробовал с "если" директива и локальные переменные Apache, но похоже, что "if" оценивается до того, как можно будет использовать Переменные HTTP (в частности, REQUEST_METHOD) вот так:
<VirtualHost *:80>
...
<If "%{REQUEST_METHOD} in {'POST','PUT','DELETE'}">
Define php_pool_port 10000
</If>
<Else>
Define php_pool_port 10001
</Else>
...
<FilesMatch ".+\.php$">
SetHandler "proxy:fcgi://127.0.0.1:${php_pool_port}"
</FilesMatch>
...
</VirtualHost>
Я также безуспешно пробовал с SetEnvIf:
<VirtualHost *:80>
...
SetEnvIf %{REQUEST_METHOD} "POST" PHP_POOL_PORT=10000
SetEnvIf %{REQUEST_METHOD} "!POST" PHP_POOL_PORT=10001
...
<FilesMatch ".+\.php$">
SetHandler "proxy:fcgi://127.0.0.1:${PHP_POOL_PORT}"
</FilesMatch>
</VirtualHost>
Я пытаюсь избежать необходимости определять новый раздел и предотвратить установку дополнительных модулей, но на данный момент я думаю, что один из них действительно может быть требованием.
Есть идеи, предложения и / или комментарии?
Спасибо!