There are a number of advanced HTTP options provided for rarely used but quite useful use cases. Most people should not need these configuration options. The configuration for these settings can be found on the HTTP action link from the Proxy Port page.
Allowed Methods
The list of methods that will be forwarded to the backend server. Reasonable defaults have been provided for you.
You may chose from:
- GET
- POST
- HEAD
- PUT
- DELETE
- OPTIONS
- PATCH
Real IP Headers
A Real IP Header (aka Forwarded-For header) allows for upstream proxies to send along the IP address of connecting clients to the next service in line. In this case this option is provided to allow for a situation where we are used in the middle.
Note: this does not exempt the connecting host from any DDoS protection rules and is generally not a recommended configuration.
An option to override the Backend Real IP header (defaults to X-Real-IP
) is also provided.
UUID Header
Every request (successful or an error) is assigned a request UUID. This UUID is shown on non customised error pages (for more information see the Error Pages documentation) and can be used to identify a specific request. This UUID is also sent to the backend server in a header defined by you if enabled (off by default).
If enabled with the header of X-Request-Id
you should expect to see a request similar to the following made to your backend server:
GET / HTTP/1.1
Accept-Encoding: deflate,gzip
Host: [...]
X-Real-IP: [...]
X-Scheme: https
X-Source: TEST_LAX1
X-Request-Id: 45dd4b87-7722-85b5-080b-8ac5080b235a
[...]
Host Translation
An option is provided that allows you to specify a custom HTTP host to be sent to the backend server different to what the client provides. This custom hostname can also include the $host variable. This configuration is especially useful for white-labeling software and allowing for dynamic configurations of domains that the backend software may not easily provide.
Example configurations:
$host
: This is the default configuration. There is no need to change or enable the setting for this.$host.domain.com
: the connecting domain name would be provided as a subdomain to your supplied domain name suffix. domain.com - "domain.com" will always be sent to the backend server regardless of the host header received._
: A single underscore denotes a special mode where no HTTP header will be sent.
Performance Tracing headers
Experiencing slower performance of your website than expected? Want data on how fast your backend server responds to requests? Performance Tracing (Server-Timing) headers can do this. Performance tracing headers are sent on all requests served by your backend when enabled and are disabled by default.
NOTE: Performance tracing headers should only be enabled if required as they do slightly reduce the performance of the page and size of the request.
When enabled using Chrome Developer tools you can retreive metrics on: - The time it takes for a connection to your backend to be made (0ms if a pooled keepalive connection is used) accurate to within +/- 10ms. This includes TLS negotiation time and any DNS lookups as necessary. - The time it takes for the response headers to be generated and then received from your backend (accurate to within +/- 10ms)
If multiple backends are used to serve a single reques (such as if a backend is down) only the time for used in the request to the first backend is used.
If you are troubleshooting an issue relating to peformance you also might want to: - Check caching settings if migrating from another proxy / web accelerator, we are conservative by default and place control in the hands of you (the customer). - Check error log for any issues connecting to your backend, or with your configuration (such as ratelimits). - Check routes both to/from your server and the backend communication IP and between your clients and our network - Check the content of the page being served for any issues that may be causing the page to load slowly, there is only so much caching and acceleration can do to speed up a poorly developed site / page.
Other Headers
By default we send a number of headers to the backend server. These headers are used to identify the request and provide information to the backend server. These headers are:
X-Source
: The datacenter the request was received in.X-Scheme
: The scheme of the request (http or https).X-Real-IP
: The IP address of the client that connected to our network.X-Request-Id
: The UUID of the request for tracing / logging purposes