diff --git a/changelog.d/12501.doc b/changelog.d/12501.doc
new file mode 100644
index 0000000000..278193a69a
--- /dev/null
+++ b/changelog.d/12501.doc
@@ -0,0 +1 @@
+Add HAProxy delegation example with CORS headers to docs.
diff --git a/docs/reverse_proxy.md b/docs/reverse_proxy.md
index 5a0c847951..69caa8a73e 100644
--- a/docs/reverse_proxy.md
+++ b/docs/reverse_proxy.md
@@ -206,6 +206,28 @@ backend matrix
server matrix 127.0.0.1:8008
```
+
+[Delegation](delegate.md) example:
+```
+frontend https
+ acl matrix-well-known-client-path path /.well-known/matrix/client
+ acl matrix-well-known-server-path path /.well-known/matrix/server
+ use_backend matrix-well-known-client if matrix-well-known-client-path
+ use_backend matrix-well-known-server if matrix-well-known-server-path
+
+backend matrix-well-known-client
+ http-after-response set-header Access-Control-Allow-Origin "*"
+ http-after-response set-header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
+ http-after-response set-header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept, Authorization"
+ http-request return status 200 content-type application/json string '{"m.homeserver":{"base_url":"https://matrix.example.com"},"m.identity_server":{"base_url":"https://identity.example.com"}}'
+
+backend matrix-well-known-server
+ http-after-response set-header Access-Control-Allow-Origin "*"
+ http-after-response set-header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
+ http-after-response set-header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept, Authorization"
+ http-request return status 200 content-type application/json string '{"m.server":"matrix.example.com:443"}'
+```
+
### Relayd
```
|