server { listen 80; server_name localhost; # 设置最大上传文件大小为10GB client_max_body_size 10G; # 安全响应头 add_header X-Frame-Options "SAMEORIGIN" always; add_header X-Content-Type-Options "nosniff" always; add_header X-XSS-Protection "1; mode=block" always; add_header Referrer-Policy "strict-origin-when-cross-origin" always; add_header Permissions-Policy "camera=(), geolocation=(), microphone=()" always; add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https:; font-src 'self' data:; media-src 'self' blob: https:; connect-src 'self' https: ws: wss:; worker-src 'self' blob:; object-src 'none'; base-uri 'self'; frame-ancestors 'self'; form-action 'self';" always; # 隐藏Nginx版本 server_tokens off; # 禁止访问隐藏文件和敏感文件 location ~ /\. { deny all; return 404; } location ~ \.(env|git|config|key|pem|crt)$ { deny all; return 404; } # 前端静态文件 location / { root /usr/share/nginx/html; index index.html; try_files $uri $uri/ =404; } location /assets/ { root /usr/share/nginx/html; expires 1y; } location /libs/ { root /usr/share/nginx/html; expires 30d; } location /downloads/ { alias /runtime/downloads/; expires 1h; } # 后端API反向代理 location /api/ { proxy_pass http://backend:40001; 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; # 修复:使用当前请求协议(http或https),适用于直接IP访问 proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Request-ID $request_id; proxy_cache_bypass $http_upgrade; # Cookie传递配置(验证码session需要) proxy_set_header Cookie $http_cookie; proxy_pass_header Set-Cookie; # 增加超时时间支持大文件上传(30分钟) proxy_connect_timeout 1800; proxy_send_timeout 1800; proxy_read_timeout 1800; send_timeout 1800; # 大文件上传缓冲优化 proxy_request_buffering off; proxy_buffering off; client_body_buffer_size 128k; } # 分享链接重定向 location /s/ { proxy_pass http://backend:40001; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 修复:使用当前请求协议(http或https),适用于直接IP访问 proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Request-ID $request_id; } }