GoDoxy
Advanced TopicsMiddlewaresRequest & Response Modification

Modify Response

Modify response headers and paths

Name

modify_response / response

Configuration

OptionDescriptionDefaultRequired
set_headersReplace headers-No
add_headersAdd headers-No
hide_headersRemove headers-No

Variables Reference

Variables are expanded at runtime using the syntax $variable_name or $function_name(args).

Use $$ in docker labels to escape the $ character.

CategoryVariableDescription
Requestreq_methodHTTP method
req_schemeURL scheme
req_hostHost without port
req_portPort number
req_addrHost:port
req_pathURL path
req_queryQuery string
req_urlFull URL
req_uriEncoded path?query
req_content_typeContent-Type header
req_content_lengthRequest body length
Clientremote_addrClient IP
remote_hostClient IP (parsed)
remote_portClient port
Responseresp_content_typeResponse Content-Type
resp_content_lengthResponse body length
status_codeHTTP status
Upstreamupstream_nameServer alias
upstream_schemeServer scheme
upstream_hostServer host
upstream_portServer port
upstream_addrServer address:port
upstream_urlFull server URL
Dynamicheader(name)Get header value
resp_header(name)Get response header
arg(name)Get query param

Examples

Entrypoint

entrypoint:
  middlewares:
    - use: modify_response
      set_headers:
        X-Custom: value1, value2
      add_headers:
        X-Custom: value1, value2

Docker Labels

# Set headers (replace)
proxy.myapp.middlewares.response.set_headers: |
  X-Custom: value1, value2
  X-Real-IP: $$remote_host

# Add headers (append)
proxy.myapp.middlewares.response.add_headers: |
  X-Custom: value1, value2

# Hide headers (remove)
proxy.myapp.middlewares.response.hide_headers: X-Real-IP, X-Forwarded-For

Route Files

myapp:
  middlewares:
    modify_response:
      set_headers:
        X-Custom: value1, value2
        X-Real-IP: $$remote_host
      add_headers:
        X-Custom: value1, value2
      hide_headers: X-Real-IP, X-Forwarded-For

On this page