# 1. Редирект с HTTP на HTTPS (для всех доменов сразу) server { listen 80 default_server; listen [::]:80 default_server; server_name domain.ru www.domain.ru git.domain.ru disk.domain.ru matrix.domain.ru chat.domain.ru; location /.well-known/acme-challenge/ { root /var/www/certbot; } location / { return 301 https://$host$request_uri; } } # 2. Основной сайт и WWW server { listen 443 ssl; server_name domain.ru www.domain.ru; # Используем один сертификат, если он мультидоменный (Certbot обычно делает один на домен + www) # Если сертификаты разные, лучше объединить их через Certbot (флаг -d домен1 -d домен2) ssl_certificate /etc/letsencrypt/live/domain.ru/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/domain.ru/privkey.pem; location / { charset utf-8; default_type text/plain; return 200 "Hello world!"; } } # 3. Gitea server { listen 443 ssl; server_name git.domain.ru; ssl_certificate /etc/letsencrypt/live/git.domain.ru/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/git.domain.ru/privkey.pem; location / { proxy_pass http://gitea:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } # 4. Cloud server { listen 443 ssl; server_name disk.domain.ru; ssl_certificate /etc/letsencrypt/live/disk.domain.ru/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/disk.domain.ru/privkey.pem; client_max_body_size 0; location / { proxy_pass http://filebrowser; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } # 4. Matrix server { listen 443 ssl; server_name matrix.domain.ru; ssl_certificate /etc/letsencrypt/live/matrix.domain.ru/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/matrix.domain.ru/privkey.pem; location / { proxy_pass http://matrix-synapse:8008; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; client_max_body_size 50M; } #location /.well-known/matrix/server { # return 200 '{"m.server": "matrix.domain.ru:443"}'; # add_header Content-Type application/json; #} #location /.well-known/matrix/client { # return 200 '{"m.homeserver": {"base_url": "https://matrix.domain.ru"}}'; # add_header Content-Type application/json; # add_header Access-Control-Allow-Origin *; #} } server { listen 443 ssl; server_name chat.domain.ru; ssl_certificate /etc/letsencrypt/live/chat.domain.ru/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/chat.domain.ru/privkey.pem; location / { proxy_pass http://matrix-element; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; client_max_body_size 50M; } }