# Nginx site config for studionoro.ir # Copy to: /etc/nginx/sites-available/studionoro # Enable: sudo ln -sf /etc/nginx/sites-available/studionoro /etc/nginx/sites-enabled/ upstream studionoro_web { server 127.0.0.1:3000; keepalive 32; } upstream studionoro_api { server 127.0.0.1:4000; keepalive 32; } # --- Main website (Nuxt) --- server { listen 80; listen [::]:80; server_name studionoro.ir www.studionoro.ir; client_max_body_size 200M; location / { proxy_pass http://studionoro_web; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; 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; proxy_read_timeout 60s; } } # --- Admin panel (Vue static build) --- server { listen 80; listen [::]:80; server_name admin.studionoro.ir; root /var/www/studionoro/admin/dist; index index.html; client_max_body_size 200M; location /api/ { proxy_pass http://studionoro_api; proxy_http_version 1.1; 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; proxy_read_timeout 300s; proxy_send_timeout 300s; client_max_body_size 200M; } location /uploads/ { proxy_pass http://studionoro_api; proxy_http_version 1.1; proxy_set_header Host $host; expires 30d; add_header Cache-Control "public, immutable"; } location / { try_files $uri $uri/ /index.html; } } # --- API backend --- server { listen 80; listen [::]:80; server_name api.studionoro.ir; client_max_body_size 200M; location / { proxy_pass http://studionoro_api; proxy_http_version 1.1; 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; proxy_read_timeout 300s; proxy_send_timeout 300s; } }