Document updated on May 12, 2023
The HTTP proxy adds an intermediate layer where the connection to the backend goes through an external proxy.
There are two different ways to connect to your backends through a corporate proxy:
Passing an environment variable HTTP_PROXY
when starting the gateway ensures that all backend requests pass through the defined proxy. For instance:
$docker run --rm -v "$PWD:/etc/krakend" -e HTTP_PROXY=http://myproxy:8080 krakend/krakend-ee
If instead, you want to route a single backend connection through a proxy, you must add in the backend
the proxy_address
attribute under the backend/http/client
namespace:
{
"version": 3,
"endpoints": [
{
"endpoint": "/health",
"output_encoding": "no-op",
"backend": [
{
"url_pattern": "/__health",
"host": ["http://localhost:8080"],
"encoding": "no-op",
"extra_config": {
"backend/http/client": {
"proxy_address": "http://myproxy:8080"
}
}
}
]
}
]
}
The configuration flags relative to the proxy functionality is:
proxy_address
(string): The proxy address used to forward the traffic. The address must contain the protocol and the port.The backend/http/client
offers more options.
Prior to v2.3 the http-proxy
plugin offered this functionality, and is now deprecated as it is supported natively with the configuration explained above. If you used the plugin you will need to execute the following change in your configuration files:
"extra_config": {
- "plugin/http-client": {
- "name": "http-proxy",
- "proxy_address": "http://myproxy:8080"
+ "backend/http/client": {
+ "proxy_address": "http://myproxy:8080"
}
The documentation is only a piece of the help you can get! Whether you are looking for Open Source or Enterprise support, see more support channels that can help you.