summaryrefslogtreecommitdiffstats
path: root/docs/netdata-agent/configuration/running-the-netdata-agent-behind-a-reverse-proxy/Running-behind-haproxy.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/netdata-agent/configuration/running-the-netdata-agent-behind-a-reverse-proxy/Running-behind-haproxy.md')
-rw-r--r--docs/netdata-agent/configuration/running-the-netdata-agent-behind-a-reverse-proxy/Running-behind-haproxy.md54
1 files changed, 21 insertions, 33 deletions
diff --git a/docs/netdata-agent/configuration/running-the-netdata-agent-behind-a-reverse-proxy/Running-behind-haproxy.md b/docs/netdata-agent/configuration/running-the-netdata-agent-behind-a-reverse-proxy/Running-behind-haproxy.md
index 9d2aff67..04bd3283 100644
--- a/docs/netdata-agent/configuration/running-the-netdata-agent-behind-a-reverse-proxy/Running-behind-haproxy.md
+++ b/docs/netdata-agent/configuration/running-the-netdata-agent-behind-a-reverse-proxy/Running-behind-haproxy.md
@@ -1,16 +1,6 @@
-<!--
-title: "Netdata via HAProxy"
-custom_edit_url: "https://github.com/netdata/netdata/edit/master/docs/netdata-agent/configuration/running-the-netdata-agent-behind-a-reverse-proxy/Running-behind-haproxy.md"
-sidebar_label: "Netdata via HAProxy"
-learn_status: "Published"
-learn_topic_type: "Tasks"
-learn_rel_path: "Configuration/Secure your nodes"
--->
-
-# Netdata via HAProxy
-
-> HAProxy is a free, very fast and reliable solution offering high availability, load balancing,
-> and proxying for TCP and HTTP-based applications. It is particularly suited for very high traffic websites
+# Running Netdata behind HAProxy
+
+> HAProxy is a free, very fast and reliable solution offering high availability, load balancing, and proxying for TCP and HTTP-based applications. It is particularly suited for very high traffic websites
> and powers quite a number of the world's most visited ones.
If Netdata is running on a host running HAProxy, rather than connecting to Netdata from a port number, a domain name can
@@ -18,14 +8,14 @@ be pointed at HAProxy, and HAProxy can redirect connections to the Netdata port.
Netdata at `https://example.com` or `https://example.com/netdata/`, which is a much nicer experience then
`http://example.com:19999`.
-To proxy requests from [HAProxy](https://github.com/haproxy/haproxy) to Netdata,
+To proxy requests from [HAProxy](https://github.com/haproxy/haproxy) to Netdata,
the following configuration can be used:
## Default Configuration
For all examples, set the mode to `http`
-```conf
+```text
defaults
mode http
```
@@ -38,7 +28,7 @@ A simple example where the base URL, say `http://example.com`, is used with no s
Create a frontend to receive the request.
-```conf
+```text
frontend http_frontend
## HTTP ipv4 and ipv6 on all ips ##
bind :::80 v4v6
@@ -50,7 +40,7 @@ frontend http_frontend
Create the Netdata backend which will send requests to port `19999`.
-```conf
+```text
backend netdata_backend
option forwardfor
server netdata_local 127.0.0.1:19999
@@ -69,7 +59,7 @@ An example where the base URL is used with a subpath `/netdata/`:
To use a subpath, create an ACL, which will set a variable based on the subpath.
-```conf
+```text
frontend http_frontend
## HTTP ipv4 and ipv6 on all ips ##
bind :::80 v4v6
@@ -92,7 +82,7 @@ frontend http_frontend
Same as simple example, except remove `/netdata/` with regex.
-```conf
+```text
backend netdata_backend
option forwardfor
server netdata_local 127.0.0.1:19999
@@ -107,14 +97,14 @@ backend netdata_backend
## Using TLS communication
-TLS can be used by adding port `443` and a cert to the frontend.
+TLS can be used by adding port `443` and a cert to the frontend.
This example will only use Netdata if host matches example.com (replace with your domain).
### Frontend
This frontend uses a certificate list.
-```conf
+```text
frontend https_frontend
## HTTP ##
bind :::80 v4v6
@@ -139,11 +129,11 @@ In the cert list file place a mapping from a certificate file to the domain used
`/etc/letsencrypt/certslist.txt`:
-```txt
+```text
example.com /etc/letsencrypt/live/example.com/example.com.pem
```
-The file `/etc/letsencrypt/live/example.com/example.com.pem` should contain the key and
+The file `/etc/letsencrypt/live/example.com/example.com.pem` should contain the key and
certificate (in that order) concatenated into a `.pem` file.:
```sh
@@ -156,7 +146,7 @@ cat /etc/letsencrypt/live/example.com/fullchain.pem \
Same as simple, except set protocol `https`.
-```conf
+```text
backend netdata_backend
option forwardfor
server netdata_local 127.0.0.1:19999
@@ -172,30 +162,30 @@ backend netdata_backend
To use basic HTTP Authentication, create an authentication list:
-```conf
+```text
# HTTP Auth
userlist basic-auth-list
group is-admin
# Plaintext password
- user admin password passwordhere groups is-admin
+ user admin password YOUR_PASSWORD groups is-admin
```
You can create a hashed password using the `mkpassword` utility.
```sh
- printf "passwordhere" | mkpasswd --stdin --method=sha-256
+ printf "YOUR_PASSWORD" | mkpasswd --stdin --method=sha-256
$5$l7Gk0VPIpKO$f5iEcxvjfdF11khw.utzSKqP7W.0oq8wX9nJwPLwzy1
```
-Replace `passwordhere` with hash:
+Replace `YOUR_PASSWORD` with hash:
-```conf
+```text
user admin password $5$l7Gk0VPIpKO$f5iEcxvjfdF11khw.utzSKqP7W.0oq8wX9nJwPLwzy1 groups is-admin
```
Now add at the top of the backend:
-```conf
+```text
acl devops-auth http_auth_group(basic-auth-list) is-admin
http-request auth realm netdata_local unless devops-auth
```
@@ -204,7 +194,7 @@ http-request auth realm netdata_local unless devops-auth
Full example configuration with HTTP auth over TLS with subpath:
-```conf
+```text
global
maxconn 20000
@@ -293,5 +283,3 @@ backend netdata_backend
http-request set-header X-Forwarded-Port %[dst_port]
http-request set-header Connection "keep-alive"
```
-
-