parent
572b444dab
commit
24d9151a08
|
@ -0,0 +1 @@
|
||||||
|
Improve the formatting of `reverse_proxy.md`.
|
|
@ -34,97 +34,107 @@ the reverse proxy and the homeserver.
|
||||||
|
|
||||||
### nginx
|
### nginx
|
||||||
|
|
||||||
server {
|
```
|
||||||
listen 443 ssl;
|
server {
|
||||||
listen [::]:443 ssl;
|
listen 443 ssl;
|
||||||
server_name matrix.example.com;
|
listen [::]:443 ssl;
|
||||||
|
server_name matrix.example.com;
|
||||||
|
|
||||||
location /_matrix {
|
location /_matrix {
|
||||||
proxy_pass http://localhost:8008;
|
proxy_pass http://localhost:8008;
|
||||||
proxy_set_header X-Forwarded-For $remote_addr;
|
proxy_set_header X-Forwarded-For $remote_addr;
|
||||||
# Nginx by default only allows file uploads up to 1M in size
|
# Nginx by default only allows file uploads up to 1M in size
|
||||||
# Increase client_max_body_size to match max_upload_size defined in homeserver.yaml
|
# Increase client_max_body_size to match max_upload_size defined in homeserver.yaml
|
||||||
client_max_body_size 10M;
|
client_max_body_size 10M;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
server {
|
server {
|
||||||
listen 8448 ssl default_server;
|
listen 8448 ssl default_server;
|
||||||
listen [::]:8448 ssl default_server;
|
listen [::]:8448 ssl default_server;
|
||||||
server_name example.com;
|
server_name example.com;
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
proxy_pass http://localhost:8008;
|
proxy_pass http://localhost:8008;
|
||||||
proxy_set_header X-Forwarded-For $remote_addr;
|
proxy_set_header X-Forwarded-For $remote_addr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
```
|
||||||
|
|
||||||
> **NOTE**: Do not add a `/` after the port in `proxy_pass`, otherwise nginx will
|
**NOTE**: Do not add a path after the port in `proxy_pass`, otherwise nginx will
|
||||||
canonicalise/normalise the URI.
|
canonicalise/normalise the URI.
|
||||||
|
|
||||||
### Caddy 1
|
### Caddy 1
|
||||||
|
|
||||||
matrix.example.com {
|
```
|
||||||
proxy /_matrix http://localhost:8008 {
|
matrix.example.com {
|
||||||
transparent
|
proxy /_matrix http://localhost:8008 {
|
||||||
}
|
transparent
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
example.com:8448 {
|
example.com:8448 {
|
||||||
proxy / http://localhost:8008 {
|
proxy / http://localhost:8008 {
|
||||||
transparent
|
transparent
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### Caddy 2
|
### Caddy 2
|
||||||
|
|
||||||
matrix.example.com {
|
```
|
||||||
reverse_proxy /_matrix/* http://localhost:8008
|
matrix.example.com {
|
||||||
}
|
reverse_proxy /_matrix/* http://localhost:8008
|
||||||
|
}
|
||||||
|
|
||||||
example.com:8448 {
|
example.com:8448 {
|
||||||
reverse_proxy http://localhost:8008
|
reverse_proxy http://localhost:8008
|
||||||
}
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### Apache
|
### Apache
|
||||||
|
|
||||||
<VirtualHost *:443>
|
```
|
||||||
SSLEngine on
|
<VirtualHost *:443>
|
||||||
ServerName matrix.example.com;
|
SSLEngine on
|
||||||
|
ServerName matrix.example.com;
|
||||||
|
|
||||||
AllowEncodedSlashes NoDecode
|
AllowEncodedSlashes NoDecode
|
||||||
ProxyPass /_matrix http://127.0.0.1:8008/_matrix nocanon
|
ProxyPass /_matrix http://127.0.0.1:8008/_matrix nocanon
|
||||||
ProxyPassReverse /_matrix http://127.0.0.1:8008/_matrix
|
ProxyPassReverse /_matrix http://127.0.0.1:8008/_matrix
|
||||||
</VirtualHost>
|
</VirtualHost>
|
||||||
|
|
||||||
<VirtualHost *:8448>
|
<VirtualHost *:8448>
|
||||||
SSLEngine on
|
SSLEngine on
|
||||||
ServerName example.com;
|
ServerName example.com;
|
||||||
|
|
||||||
AllowEncodedSlashes NoDecode
|
AllowEncodedSlashes NoDecode
|
||||||
ProxyPass /_matrix http://127.0.0.1:8008/_matrix nocanon
|
ProxyPass /_matrix http://127.0.0.1:8008/_matrix nocanon
|
||||||
ProxyPassReverse /_matrix http://127.0.0.1:8008/_matrix
|
ProxyPassReverse /_matrix http://127.0.0.1:8008/_matrix
|
||||||
</VirtualHost>
|
</VirtualHost>
|
||||||
|
```
|
||||||
|
|
||||||
> **NOTE**: ensure the `nocanon` options are included.
|
**NOTE**: ensure the `nocanon` options are included.
|
||||||
|
|
||||||
### HAProxy
|
### HAProxy
|
||||||
|
|
||||||
frontend https
|
```
|
||||||
bind :::443 v4v6 ssl crt /etc/ssl/haproxy/ strict-sni alpn h2,http/1.1
|
frontend https
|
||||||
|
bind :::443 v4v6 ssl crt /etc/ssl/haproxy/ strict-sni alpn h2,http/1.1
|
||||||
|
|
||||||
# Matrix client traffic
|
# Matrix client traffic
|
||||||
acl matrix-host hdr(host) -i matrix.example.com
|
acl matrix-host hdr(host) -i matrix.example.com
|
||||||
acl matrix-path path_beg /_matrix
|
acl matrix-path path_beg /_matrix
|
||||||
|
|
||||||
use_backend matrix if matrix-host matrix-path
|
use_backend matrix if matrix-host matrix-path
|
||||||
|
|
||||||
frontend matrix-federation
|
frontend matrix-federation
|
||||||
bind :::8448 v4v6 ssl crt /etc/ssl/haproxy/synapse.pem alpn h2,http/1.1
|
bind :::8448 v4v6 ssl crt /etc/ssl/haproxy/synapse.pem alpn h2,http/1.1
|
||||||
default_backend matrix
|
default_backend matrix
|
||||||
|
|
||||||
backend matrix
|
backend matrix
|
||||||
server matrix 127.0.0.1:8008
|
server matrix 127.0.0.1:8008
|
||||||
|
```
|
||||||
|
|
||||||
## Homeserver Configuration
|
## Homeserver Configuration
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue