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
	
	 Richard van der Hoff
						Richard van der Hoff