liangjiabao | c79b512 | 2025-06-05 18:53:52 +0800 | [diff] [blame] | 1 | server { |
Jiarenxiang | 24d681b | 2025-06-08 19:27:05 +0800 | [diff] [blame] | 2 | listen 80; |
Jiarenxiang | 10fb672 | 2025-06-08 21:25:05 +0800 | [diff] [blame^] | 3 | server_name team4.10813352.xyz; |
Jiarenxiang | 24d681b | 2025-06-08 19:27:05 +0800 | [diff] [blame] | 4 | |
Jiarenxiang | 10fb672 | 2025-06-08 21:25:05 +0800 | [diff] [blame^] | 5 | # 开启Gzip压缩 |
Jiarenxiang | 24d681b | 2025-06-08 19:27:05 +0800 | [diff] [blame] | 6 | gzip on; |
Jiarenxiang | 10fb672 | 2025-06-08 21:25:05 +0800 | [diff] [blame^] | 7 | gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; |
| 8 | gzip_min_length 1000; |
| 9 | gzip_proxied any; |
| 10 | gzip_comp_level 6; |
Jiarenxiang | 24d681b | 2025-06-08 19:27:05 +0800 | [diff] [blame] | 11 | |
| 12 | # 静态资源缓存优化 |
Jiarenxiang | 10fb672 | 2025-06-08 21:25:05 +0800 | [diff] [blame^] | 13 | location ~* \.(js|css|jpg|jpeg|png|gif|ico|svg|woff2|ttf|eot)$ { |
Jiarenxiang | 24d681b | 2025-06-08 19:27:05 +0800 | [diff] [blame] | 14 | root /usr/share/nginx/html; |
| 15 | expires 1y; |
Jiarenxiang | 10fb672 | 2025-06-08 21:25:05 +0800 | [diff] [blame^] | 16 | add_header Cache-Control "public, max-age=31536000, immutable"; |
Jiarenxiang | 24d681b | 2025-06-08 19:27:05 +0800 | [diff] [blame] | 17 | try_files $uri =404; |
Jiarenxiang | 10fb672 | 2025-06-08 21:25:05 +0800 | [diff] [blame^] | 18 | access_log off; |
Jiarenxiang | 24d681b | 2025-06-08 19:27:05 +0800 | [diff] [blame] | 19 | } |
liangjiabao | 33020f2 | 2025-06-05 19:10:54 +0800 | [diff] [blame] | 20 | |
Jiarenxiang | 10fb672 | 2025-06-08 21:25:05 +0800 | [diff] [blame^] | 21 | # API代理 - 指向后端服务 |
liangjiabao | c79b512 | 2025-06-05 18:53:52 +0800 | [diff] [blame] | 22 | location /api/ { |
Jiarenxiang | 10fb672 | 2025-06-08 21:25:05 +0800 | [diff] [blame^] | 23 | proxy_pass http://127.0.0.1:5004/; # 使用宿主机端口代理 |
liangjiabao | c79b512 | 2025-06-05 18:53:52 +0800 | [diff] [blame] | 24 | proxy_set_header Host $host; |
| 25 | proxy_set_header X-Real-IP $remote_addr; |
| 26 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
| 27 | proxy_set_header X-Forwarded-Proto $scheme; |
Jiarenxiang | 24d681b | 2025-06-08 19:27:05 +0800 | [diff] [blame] | 28 | |
Jiarenxiang | 10fb672 | 2025-06-08 21:25:05 +0800 | [diff] [blame^] | 29 | # 超时设置 |
Jiarenxiang | 24d681b | 2025-06-08 19:27:05 +0800 | [diff] [blame] | 30 | proxy_connect_timeout 30s; |
Jiarenxiang | 10fb672 | 2025-06-08 21:25:05 +0800 | [diff] [blame^] | 31 | proxy_read_timeout 300s; |
| 32 | proxy_send_timeout 300s; |
Jiarenxiang | 24d681b | 2025-06-08 19:27:05 +0800 | [diff] [blame] | 33 | |
Jiarenxiang | 10fb672 | 2025-06-08 21:25:05 +0800 | [diff] [blame^] | 34 | # WebSocket支持 |
Jiarenxiang | 24d681b | 2025-06-08 19:27:05 +0800 | [diff] [blame] | 35 | proxy_http_version 1.1; |
| 36 | proxy_set_header Upgrade $http_upgrade; |
| 37 | proxy_set_header Connection "upgrade"; |
| 38 | } |
| 39 | |
Jiarenxiang | 10fb672 | 2025-06-08 21:25:05 +0800 | [diff] [blame^] | 40 | # 前端SPA路由处理 - 指向前端服务 |
| 41 | location / { |
| 42 | proxy_pass http://127.0.0.1:3004; # 前端服务端口 |
| 43 | proxy_set_header Host $host; |
| 44 | proxy_set_header X-Real-IP $remote_addr; |
| 45 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
| 46 | proxy_set_header X-Forwarded-Proto $scheme; |
| 47 | |
| 48 | # SPA路由重写 |
| 49 | proxy_intercept_errors on; |
| 50 | error_page 404 = /index.html; |
| 51 | } |
| 52 | |
Jiarenxiang | 24d681b | 2025-06-08 19:27:05 +0800 | [diff] [blame] | 53 | # 禁止访问隐藏文件 |
| 54 | location ~ /\. { |
| 55 | deny all; |
| 56 | return 404; |
liangjiabao | c79b512 | 2025-06-05 18:53:52 +0800 | [diff] [blame] | 57 | } |
Jiarenxiang | 10fb672 | 2025-06-08 21:25:05 +0800 | [diff] [blame^] | 58 | |
| 59 | # 错误页面处理 |
| 60 | error_page 500 502 503 504 /50x.html; |
| 61 | location = /50x.html { |
| 62 | root /usr/share/nginx/html; |
| 63 | } |
liangjiabao | c79b512 | 2025-06-05 18:53:52 +0800 | [diff] [blame] | 64 | } |