67 lines
3.1 KiB
Plaintext
67 lines
3.1 KiB
Plaintext
server {
|
|
listen 0.0.0.0:443 ssl;
|
|
listen 0.0.0.0:443 quic;
|
|
listen [2603:c021:c001:31fa:780:b000:0:415]:443 ssl;
|
|
listen [2603:c021:c001:31fa:780:b000:0:415]:443 quic;
|
|
|
|
http2 on;
|
|
http3 on;
|
|
|
|
server_name matrix.gnu.moe;
|
|
|
|
ssl_certificate /etc/letsencrypt/live/gnu.moe/fullchain.pem;
|
|
ssl_certificate_key /etc/letsencrypt/live/gnu.moe/privkey.pem;
|
|
|
|
access_log off;
|
|
error_log /var/log/nginx/matrix.error.log;
|
|
|
|
add_header Alt-Svc 'h3=":443"; ma=86400';
|
|
|
|
# media endpoints
|
|
location ~* ^(/_matrix/media/|/_matrix/client/v1/media/|/_matrix/federation/v1/media/) { proxy_pass http://127.0.0.1:8209; }
|
|
location ~* ^(/_synapse/admin/v1/purge_media_cache$|/_synapse/admin/v1/room/.*/media.*$|/_synapse/admin/v1/user/.*/media.*$|/_synapse/admin/v1/media/.*$|/_synapse/admin/v1/quarantine_media/.*$|/_synapse/admin/v1/users/.*/media$) {
|
|
proxy_pass http://127.0.0.1:8209;
|
|
include acl_matrix_admin.conf;
|
|
}
|
|
|
|
# federation endpoints
|
|
location ~* ^(/_matrix/federation/v1/event/|/_matrix/federation/v1/state/|/_matrix/federation/v1/state_ids/|/_matrix/federation/v1/backfill/|/_matrix/federation/v1/get_missing_events/|/_matrix/federation/v1/publicRooms|/_matrix/federation/v1/query/|/_matrix/federation/v1/make_join/|/_matrix/federation/v1/make_leave/|/_matrix/federation/(v1|v2)/send_join/|/_matrix/federation/(v1|v2)/send_leave/) { proxy_pass http://127.0.0.1:8210; }
|
|
location ~* ^(/_matrix/federation/v1/make_knock/|/_matrix/federation/v1/send_knock/|/_matrix/federation/(v1|v2)/invite/|/_matrix/federation/v1/event_auth/|/_matrix/federation/v1/timestamp_to_event/|/_matrix/federation/v1/exchange_third_party_invite/|/_matrix/federation/v1/user/devices/|/_matrix/key/v2/query|/_matrix/federation/v1/hierarchy/|/_matrix/federation/v1/send/) { proxy_pass http://127.0.0.1:8210; }
|
|
|
|
# common endpoints
|
|
location ~* ^(/_matrix|/_synapse/client) { proxy_pass http://127.0.0.1:8208; }
|
|
|
|
# metrics endpoitns
|
|
location = /_syn/media {
|
|
proxy_pass http://127.0.0.1:8301/_synapse/metrics;
|
|
include acl_matrix_admin.conf;
|
|
}
|
|
location = /_syn/fedi {
|
|
proxy_pass http://127.0.0.1:8302/_synapse/metrics;
|
|
include acl_matrix_admin.conf;
|
|
}
|
|
location = /_syn/bgj {
|
|
proxy_pass http://127.0.0.1:8303/_synapse/metrics;
|
|
include acl_matrix_admin.conf;
|
|
}
|
|
|
|
# admin endpoints
|
|
location ~* ^(/_synapse/metrics|/_synapse/admin|/health) {
|
|
proxy_pass http://127.0.0.1:8208;
|
|
include acl_matrix_admin.conf;
|
|
}
|
|
|
|
proxy_set_header X-Forwarded-For $remote_addr;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
proxy_set_header Host $host:$server_port;
|
|
proxy_http_version 1.1;
|
|
client_max_body_size 32M;
|
|
|
|
location /.well-known/matrix/server { return 200 '{ "m.server": "matrix.gnu.moe:443" }\n'; }
|
|
location /.well-known/matrix/client { return 200 '{ "m.homeserver": { "base_url": "https://matrix.gnu.moe" } }\n'; }
|
|
|
|
include robots.conf;
|
|
|
|
location / { return 418; }
|
|
}
|