Bug 1136290 - SetHandler to proxy support
Summary: SetHandler to proxy support
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: httpd
Version: 7.1
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Luboš Uhliarik ✈
QA Contact: Martin Frodl
URL:
Whiteboard:
Depends On:
Blocks: 1136906
TreeView+ depends on / blocked
 
Reported: 2014-09-02 09:40 UTC by Remi Collet
Modified: 2021-01-14 09:32 UTC (History)
7 users (show)

Fixed In Version: httpd-2.4.6-24.el7
Doc Type: Enhancement
Doc Text:
Feature: Add support for using SetHandler together with mod_proxy. Reason: There was no way to use SetHandler with mod_proxy to configure it to use proxy for the incoming requests. This is useful for using for example php-fpm with event or worker MPM. Result: SetHandler directive has been improved to allow setting proxy as a handler in, for example, following format: SetHandler "proxy:fcgi://127.0.0.1:9000".
Clone Of:
: 1136906 (view as bug list)
Environment:
Last Closed: 2015-03-05 07:13:10 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2015:0325 normal SHIPPED_LIVE Low: httpd security, bug fix, and enhancement update 2015-03-05 11:59:16 UTC

Description Remi Collet 2014-09-02 09:40:52 UTC
The simple and common way to enable PHP support in Apache http server is using mod_php and

    SetHandler application/x-httpd-php

Using httpd with worker or event MPM doesn't have support for mod_php
With RHSCL various PHP versions are available, but only one mod_php can be enabled.

The solution is to use php-fpm and mod_proxy_fcgi.

But configuration, to redirect PHP script to FPM, requires to use ProxyPass(Match) which is really not simple.

As ProxyPass is evaluated in the very beginning of an http request, it don't honours alias or htaccess rules.

SetHandler is evaluated at the very end of an http request.

httpd 2.4.10 have SetHandler to proxy support which allow to use 

    SetHandler "proxy:fcgi://127.0.0.1:9000"

Please consider backporting this great feature in RHEL

For memory, commit in fedora (at 2.4.9 time)
http://pkgs.fedoraproject.org/cgit/httpd.git/commit/?id=5b3da1ff0f24d6da3394e65c24656ab77dada3b3

Comment 6 Orsiris de Jong 2014-12-11 22:03:40 UTC
Using php-fpm with actual httpd 2.4.6 package needs use of ProxyPassMatch directive which can lead to malicious code execution.
Example:

Using the following directive:
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/path/to/your/documentroot

Malicious code injection:
/uploads/malicious.jpg/lalalaalala.php will lead php-fpm to execute malicious.jpg (source https://wiki.apache.org/httpd/PHP-FPM )

Might the SetHanlder enhancement be considered as a security enhancement and therefore backported ?

Regards,
Ozy.

Comment 8 errata-xmlrpc 2015-03-05 07:13:10 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHSA-2015-0325.html


Note You need to log in before you can comment on or make changes to this bug.