development
xyz 59 lines 2.15 KB
Raw
1 # ─────────────────────────────────────────────────────────────
2 # smbcloud.xyz — minimal Nginx reverse-proxy for Next.js SSR
3 #
4 # This follows the simpler smbcloud-web-console pattern:
5 # proxy everything to the standalone Next.js server and let the app
6 # serve both SSR responses and /_next/static assets.
7 #
8 # Next.js runs via PM2: node server.js (PORT=3030, HOSTNAME=127.0.0.1)
9 # Deploy path: /home/git/apps/web/smbcloudweb/
10 # PM2 app: smbcloud-web
11 #
12 # Keep the port aligned in three places:
13 # 1. .smb/config.toml
14 # 2. PM2 env / ecosystem.config.js
15 # 3. this nginx proxy target
16 # ─────────────────────────────────────────────────────────────
17
18 server {
19 listen 80;
20 listen [::]:80;
21 server_name smbcloud.xyz www.smbcloud.xyz;
22
23 return 301 https://$host$request_uri;
24 }
25
26 server {
27 listen 443 ssl http2;
28 listen [::]:443 ssl http2;
29 server_name smbcloud.xyz www.smbcloud.xyz;
30
31 ssl_certificate /etc/letsencrypt/live/smbcloud.xyz/fullchain.pem;
32 ssl_certificate_key /etc/letsencrypt/live/smbcloud.xyz/privkey.pem;
33 include /etc/letsencrypt/options-ssl-nginx.conf;
34 ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
35
36 access_log /var/log/nginx/smbcloud.xyz.access.log;
37 error_log /var/log/nginx/smbcloud.xyz.error.log;
38
39 location / {
40 proxy_pass http://127.0.0.1:3030;
41 proxy_http_version 1.1;
42
43 proxy_set_header Host $host;
44 proxy_set_header X-Forwarded-Host $host;
45 proxy_set_header X-Forwarded-Port 443;
46 proxy_set_header X-Real-IP $remote_addr;
47 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
48 proxy_set_header X-Forwarded-Proto $scheme;
49
50 proxy_set_header Upgrade $http_upgrade;
51 proxy_set_header Connection "upgrade";
52
53 proxy_connect_timeout 60s;
54 proxy_send_timeout 60s;
55 proxy_read_timeout 60s;
56 proxy_buffering off;
57 proxy_cache_bypass $http_upgrade;
58 }
59 }