• William Bezuidenhout's avatar
    proxy: Add, remove, or replace upstream and downstream headers (closes #666) (PR #788) · e2234497
    William Bezuidenhout authored
    * Overwrite proxy headers based on directive
    
    Headers of the request sent by the proxy upstream can now be modified in
    the following way:
    
    Prefix header with `+`: Header will be added if it doesn't exist
    otherwise, the values will be merge
    Prefix header with `-': Header will be removed
    No prefix: Header will be replaced with given value
    
    * Add missing formating directive reported by go vet
    
    * Overwrite up/down stream proxy headers
    
    Add Up/DownStreamHeaders to UpstreamHost
    
    Split `proxy_header` option in `proxy` directive into `header_upstream`
    and `header_downstream`. By splitting into two, it makes it clear in
    what direction the given headers must be applied.
    
    `proxy_header` can still be used (to maintain backward compatability)
    but its assumed to be `header_upstream`
    
    Response headers received by the reverse proxy from the upstream host
    are updated according the `header_downstream` rules.
    The update occurs through a func given to the reverse proxy, which is
    applied once a response is received.
    
    Headers (for upstream and downstream) can now be modified in
    the following way:
    
    Prefix header with `+`: Header will be added if it doesn't exist
    otherwise, the values will be merge
    Prefix header with `-': Header will be removed
    No prefix: Header will be replaced with given value
    
    Updated branch with changes from master
    
    * minor refactor to make intent clearer
    
    * Make Up/Down stream headers naming consistent
    
    * Fix error descriptions to be more clear
    
    * Fix lint issue
    e2234497
reverseproxy.go 7.13 KB