通过将静态资源(如图片、CSS、JS 文件)与动态请求(如 API 接口)分离,可以显著提升网站性能。Nginx 直接处理静态文件,效率极高,同时将动态请求代理给后端应用服务器。
场景: 将所有以 .jpg, .png, .css, .js 结尾的请求作为静态资源处理,并开启浏览器缓存;将所有 /api/ 开头的请求代理到后端服务器。
server {listen 80;server_name localhost; # 你的域名# ====================== 静态资源配置 ======================# 图片、视频、样式、脚本等静态文件直接由 Nginx 读取location ~* \.(html|htm|css|js|jpg|jpeg|png|gif|ico|svg|woff|ttf|mp4|mp3)$ {root /usr/share/nginx/html; # 静态文件存放路径expires 7d; # 缓存 7 天add_header Cache-Control public;}# ====================== 动态请求转发 ======================# 接口请求 /api/* 转发给后端服务location /api/ {proxy_pass http://127.0.0.1:8080; # 你的后端服务地址proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}# 默认页面location / {root /usr/share/nginx/html;index index.html index.htm;}
}
1、访问静态资源
http://localhost/css/style.css
→ Nginx 直接读取 /usr/share/nginx/html/css/style.css 返回
2、访问动态接口
http://localhost/api/user/list
→ Nginx 转发到 http://127.0.0.1:8080/api/user/list
→ 后端处理后返回数据
