On 03/19/2014 06:15 AM, Andreas B. wrote:
Hello,

I saw the new unix sockets for mod_proxy in 2.4.9 and I am wondering why
there has to be a special url format. Wouldn't it be possible to supply
the socket path as a proxy parameter? I have something like this in mind:

     <Proxy "fcgi://php-fpm.local">
         ProxySet "unix=/run/php-fpm/php-fpm.sock"
     </Proxy>
     <FilesMatch \.php$>
         SetHandler "proxy:fcgi://php-fpm.local"
     </FilesMatch>

or with ProxyPass:
     ProxyPass /php-bin "proxy:fcgi://php-fpm.local/src/http/"
"unix=/run/php-fpm/php-fpm.sock"
     ProxyPassMatch ^(/.*\.php)$ "fcgi://php-fpm.local/srv/http/"
"unix=/run/php-fpm/php-fpm.sock"

I can provide an incomplete patchset for this. I didn't touch the
documentation, mod_proxy_balancer output and log messages. This would
get rid of de_socketfy() and make the codepath much cleaner I think.

Andreas

PS: I found some strange behaviour with ProxyPassMatch. When you use a
group match (e.g. $1) in the result string, you'll have to define the
parameters in a separate proxy section. This Probably applies to
ProxyPass with the regex-tilde as well
     ProxyPassMatch ^(/.*\.php)$ "fcgi://php-fpm.local/srv/http/$1"
     <Proxy "fcgi://php-fpm.local/srv/http">
         ProxySet "unix=/run/php-fpm/php-fpm.sock"
     </Proxy>

Check "[PATCH] Fix settings options with ProxyPassMatch" thread for this particular problem.

Jan Kaluza

Reply via email to