# 东区人才卡 —— 测试环境 nginx 站点(2026-09-22) # # 部署位置:/etc/nginx/sites-available/talent-card (再软链到 sites-enabled/) # # 为什么监听 8081:这台机器公网入向只开了 8081/8082,80/443/8080 都要备案号才能开。 # # 为什么前端和 API 走同一个端口:admin 的 .env.example 里 VITE_API_BASE_URL 默认留空 # (同源,注释写明「留空即可避免浏览器跨域」)。同源之后 CORS 那一堆白名单就不必配了。 server { listen 8081; server_name _; # 后端 spring.servlet.multipart.max-file-size 是 10MB,而 nginx 默认只放 1MB, # 不抬高的话图片上传会在 nginx 这层就 413,看后端日志什么都没有。 client_max_body_size 20m; # 进件/开通这类要打通道的接口慢,留出余量 proxy_read_timeout 120s; proxy_send_timeout 120s; location /api/ { proxy_pass http://127.0.0.1:8080; 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; } # 上传的图片由后端自己托管(UploadResourceConfig 把 /uploads/** 映射到 app.upload.directory), # 所以这里只转发,不要用 alias 指向磁盘 —— 两处指向同一个目录早晚会不一致。 location /uploads/ { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } # 后台管理端 SPA(dist 尚未部署,目录里先放占位页) location / { root /data/talent-card/admin; try_files $uri $uri/ /index.html; } }