meson / code.meson.kr

Last active 3 weeks ago

Like 0

meson revised this gist 3 weeks ago · 0faae94

1 file changed, 69 insertions

code.meson.kr (file created)
@@ -0,0 +1,69 @@
1 + server {
2 + listen 80;
3 + listen [::]:80;
4 + server_name code.meson.kr;
5 +
6 + return 301 https://$host$request_uri;
7 + }
8 +
9 + server {
10 + # HTTP/2 over TCP
11 + listen 443 ssl;
12 + listen [::]:443 ssl;
13 +
14 + # HTTP/3 over QUIC/UDP
15 + listen 443 quic;
16 + listen [::]:443 quic;
17 +
18 + http2 on;
19 + http3 on;
20 +
21 + add_header Alt-Svc 'h3=":443"; ma=86400' always;
22 +
23 + server_name code.meson.kr;
24 + root /home/www-data/code.meson.kr;
25 +
26 + # SSL Certificate Configuration (Certbot managed)
27 +
28 + include /etc/letsencrypt/options-ssl-nginx.conf;
29 +
30 + ssl_certificate /etc/letsencrypt/live/code.meson.kr/fullchain.pem;
31 + ssl_certificate_key /etc/letsencrypt/live/code.meson.kr/privkey.pem;
32 +
33 + # Security Headers
34 + add_header X-Frame-Options "SAMEORIGIN" always;
35 + add_header X-XSS-Protection "1; mode=block" always;
36 + add_header X-Content-Type-Options "nosniff" always;
37 + add_header Referrer-Policy "no-referrer-when-downgrade" always;
38 + add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;
39 + add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
40 +
41 + # Max upload size (Crucial for pasting large codebases or file drag-and-drops)
42 + client_max_body_size 64M;
43 +
44 + # Logging
45 + access_log /var/log/nginx/p.onni.me.log combined if=$loggable;
46 + error_log /var/log/nginx/_error_p.onni.me.log warn;
47 +
48 + location / {
49 + # Forward traffic to the Docker container port we mapped
50 + proxy_pass http://127.0.0.1:6157;
51 +
52 + # Standard Reverse Proxy Headers
53 + proxy_set_header Host $host;
54 + proxy_set_header X-Real-IP $remote_addr;
55 + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
56 + proxy_set_header X-Forwarded-Proto $scheme;
57 +
58 + # WebSocket Support (Required for Opengist interactive features)
59 + proxy_http_version 1.1;
60 + proxy_set_header Upgrade $http_upgrade;
61 + proxy_set_header Connection "upgrade";
62 +
63 + # Proxy Timeout Optimizations
64 + proxy_connect_timeout 90s;
65 + proxy_send_timeout 90s;
66 + proxy_read_timeout 90s;
67 + proxy_buffering off;
68 + }
69 + }