server { listen 80; server_name smartmate.lecspace.com _; return 301 https://$host$request_uri; } server { listen 443 ssl; http2 on; server_name smartmate.lecspace.com; resolver 127.0.0.11 ipv6=off valid=30s; ssl_certificate /etc/nginx/certs/tls.crt; ssl_certificate_key /etc/nginx/certs/tls.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_session_timeout 1d; ssl_session_cache shared:SSL:10m; ssl_session_tickets off; root /usr/share/nginx/html; index index.html; # 1. 生产环境统一由前端容器反代后端 API,前端继续使用相对路径 /api/v1。 # 2. 关闭代理缓冲,避免 Agent SSE 响应被 Nginx 缓存后前端长时间收不到数据。 location /api/ { set $api_upstream http://api:8080; proxy_pass $api_upstream; 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_set_header Connection ""; proxy_buffering off; proxy_cache off; proxy_read_timeout 3600s; add_header X-Accel-Buffering no; } # 1. Vue Router 走 history 模式时,静态资源未命中需要回落到 index.html。 # 2. 这里只负责前端页面回落,接口流量统一由上面的 /api 路由处理。 location / { try_files $uri $uri/ /index.html; } }