75 lines
2.7 KiB
Markdown
75 lines
2.7 KiB
Markdown
---
|
|
sidebar_position: 5
|
|
sidebar_label: "Other Configurations"
|
|
---
|
|
|
|
# Other configurations
|
|
|
|
## Proxy Headers
|
|
|
|
EasyHAProxy automatically sets standard proxy-awareness headers for all HTTP requests:
|
|
|
|
| Header | Description | Example Value |
|
|
|-------------------|----------------------------------|----------------------------------------|
|
|
| X-Forwarded-For | Client IP address | `203.0.113.50` |
|
|
| X-Forwarded-Port | Port HAProxy received request on | `443` |
|
|
| X-Forwarded-Proto | Protocol (http or https) | `https` |
|
|
| X-Forwarded-Host | Original Host header from client | `example.com` |
|
|
| X-Request-ID | Unique request identifier (UUID) | `550e8400-e29b-41d4-a716-446655440000` |
|
|
|
|
These headers help backend applications:
|
|
- Determine the original client IP
|
|
- Detect HTTPS vs HTTP
|
|
- Generate correct URLs with proper hostname
|
|
- Correlate requests for debugging and monitoring
|
|
|
|
**Note:** Headers are only added in HTTP mode, not TCP mode.
|
|
|
|
## Exposing Ports
|
|
|
|
Some ports on the EasyHAProxy container and in the firewall are required to be open. However, you don't need to expose the other container ports because EasyHAProxy will handle that.
|
|
|
|
- The ports `80` and `443`.
|
|
- If you enable the HAProxy statistics, you must also expose the port defined in `HAPROXY_STATS_PORT` environment variable (default 1936). Statistics are only generated when you set `HAPROXY_PASSWORD`.
|
|
- Every port defined in `easyhaproxy.[definitions].port` also should be exposed.
|
|
|
|
For example:
|
|
|
|
```bash title="Expose required ports"
|
|
docker run \
|
|
/* other parameters */
|
|
-p 80:80 \
|
|
-p 443:443 \
|
|
-p 1936:1936 \
|
|
-d byjg/easy-haproxy
|
|
```
|
|
|
|
## Mapping Docker Volume
|
|
|
|
The docker volume or a way to call the API needs to pass to the EasyHAProxy container.
|
|
|
|
```bash title="Mount Docker socket"
|
|
docker run \
|
|
/* other parameters */
|
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
|
-d byjg/easy-haproxy
|
|
```
|
|
|
|
## Mapping custom .cfg files
|
|
|
|
You can concatenate valid HAProxy `.cfg` files to the dynamically generated `haproxy.cfg` by mapping the folder `/etc/easyhaproxy/haproxy/conf.d`.
|
|
|
|
```bash title="Mount custom config directory"
|
|
docker run \
|
|
/* other parameters */
|
|
-v /your/local/conf.d:/etc/easyhaproxy/haproxy/conf.d \
|
|
-d byjg/easy-haproxy
|
|
```
|
|
|
|
## Setting Custom Errors
|
|
|
|
If enabled, map the volume : `/etc/easyhaproxy/haproxy/errors-custom/` to your container and put a file named `ERROR_NUMBER.http`
|
|
where ERROR_NUMBER is the HTTP error code (e.g., `503.http`)
|
|
|
|
----
|
|
[Open source ByJG](http://opensource.byjg.com)
|