Bug 1470197 - [RFE] Backport 'set-uri' feature in haproxy-1.5
[RFE] Backport 'set-uri' feature in haproxy-1.5
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: haproxy (Show other bugs)
x86_64 Linux
unspecified Severity high
: rc
: ---
Assigned To: Ryan O'Hara
Brandon Perkins
: FutureFeature
Depends On:
  Show dependency treegraph
Reported: 2017-07-12 09:59 EDT by Davide F Bragalone
Modified: 2017-08-02 08:44 EDT (History)
0 users

See Also:
Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2017-08-02 08:44:19 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Davide F Bragalone 2017-07-12 09:59:45 EDT
Description of problem:
Request to back-port the 'set-uri' option of "http-request" parameter which is not present in the current latest shipped version of haproxy:

# less /usr/share/doc/haproxy-1.5.18/configuration.txt
http-request { allow | deny | tarpit | auth [realm <realm>] | redirect <rule> |
              add-header <name> <fmt> | set-header <name> <fmt> |
              del-header <name> | set-nice <nice> | set-log-level <level> |
              replace-header <name> <match-regex> <replace-fmt> |
              replace-value <name> <match-regex> <replace-fmt> |
              set-tos <tos> | set-mark <mark> |
              add-acl(<file name>) <key fmt> |
              del-acl(<file name>) <key fmt> |
              del-map(<file name>) <key fmt> |
              set-map(<file name>) <key fmt> <value fmt>
             [ { if | unless } <condition> ]

While it's present in haproxy's 1.6 version (which we do not ship yet):

http-request { allow | tarpit | auth [realm <realm>] | redirect <rule> |
              deny [deny_status <status>] |
              add-header <name> <fmt> | set-header <name> <fmt> |
              capture <sample> [ len <length> | id <id> ] |
              del-header <name> | set-nice <nice> | set-log-level <level> |
              replace-header <name> <match-regex> <replace-fmt> |
              replace-value <name> <match-regex> <replace-fmt> |
              set-method <fmt> | set-path <fmt> | set-query <fmt> |
              set-uri <fmt> | set-tos <tos> | set-mark <mark> |  <<----------------
              add-acl(<file name>) <key fmt> |
              del-acl(<file name>) <key fmt> |
              del-map(<file name>) <key fmt> |
              set-map(<file name>) <key fmt> <value fmt> |
              set-var(<var name>) <expr> |
              { track-sc0 | track-sc1 | track-sc2 } <key> [table <table>] |
              sc-inc-gpc0(<sc-id>) |
              sc-set-gpt0(<sc-id>) <int> |
              silent-drop |
             [ { if | unless } <condition> ]

Version-Release number of selected component (if applicable):

- Why they need this feature ?
Customer is experiencing unexpected 503 behaviour on RH7.3 with a specific mod_proxy configuration and they would like to use haproxy (with that feature) instead of Apache mod_proxy as a workaround.
This will be beneficial for other future projects as well(enhanced rewriting options and LUA scripting).

- How does the presence/absence of this feature benefits/impacts your Busniness/project operation? 
They cannot deploy their application as they expect serious problems under production load.

4. How would you like to achieve this ?
As it's already implemented for haproxy-1.6 would be fine.
Comment 2 Ryan O'Hara 2017-07-12 13:54:38 EDT
This would require a fairly complex and massive amount of code changes to backport this feature. It is not a simple series of cherry-picks. I also noticed that you mentioned LUA scripting in comment #0, another major feature missing from haproxy-1.5 that would is not easily backported.
Comment 3 Red Hat Bugzilla Rules Engine 2017-08-02 08:44:19 EDT
Development Management has reviewed and declined this request. You may appeal this decision by reopening this request.

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