- 安装Nginx并设置缓存路径
首先确保Nginx已安装,然后配置缓存路径和参数:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=s3cache:200m max_size=10g inactive=60m use_temp_path=off;
proxy_temp_path /var/cache/nginx/tmp;
参数说明:
- /var/cache/nginx:缓存文件存储路径
- levels=1:2:两级目录结构提高文件查找效率
- keys_zone=s3cache:200m:定义200MB共享内存区域存储缓存键
- max_size=10g:缓存区最大10GB
- inactive=60m:60分钟未访问的缓存将被删除
- 配置S3反向代理与缓存规则
server {
listen 80;
server_name yourdomain.com;
# S3访问配置
set $s3_bucket 'your-bucket.s3.amazonaws.com';
set $s3_access_key 'YOUR_ACCESS_KEY';
set $s3_secret_key 'YOUR_SECRET_KEY';
location / {
proxy_pass https://$s3_bucket;
# 缓存配置
proxy_cache s3cache;
proxy_cache_valid 200 302 24h;
proxy_cache_valid 404 1m;
proxy_cache_key "$scheme$host$request_uri";
add_header X-Cache-Status $upstream_cache_status;
# S3认证头
proxy_set_header Host $s3_bucket;
proxy_set_header Authorization "AWS $s3_access_key:$s3_secret_key";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 隐藏S3特定头
proxy_hide_header x-amz-id-2;
proxy_hide_header x-amz-request-id;
proxy_hide_header Set-Cookie;
proxy_ignore_headers "Set-Cookie";
}
}
- 路径映射与特殊处理
如果需要将特定路径映射到S3的不同目录:
location /static/ {
proxy_pass https://$s3_bucket/project-static/;
# 其他缓存和代理配置同上
}
- 启用压缩与性能优化
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_comp_level 6;
高级配置选项
- 动静分离实现
# 静态资源(图片/CSS/JS等)
location ~* \.(jpg|jpeg|png|gif|css|js|woff|ttf|svg)$ {
proxy_cache s3cache;
proxy_cache_valid 200 302 30d;
expires 30d;
add_header Cache-Control "public";
}
# 动态内容
location /api/ {
proxy_pass http://backend_server;
proxy_cache_bypass $http_cache_control;
}
- 安全与访问控制
# 限速配置
limit_req_zone $binary_remote_addr zone=perip:10m rate=10r/s;
location /downloads/ {
limit_req zone=perip burst=20;
# 其他配置
}
# IP白名单
location /private/ {
allow 192.168.1.0/24;
deny all;
# 其他配置
}
- 缓存刷新机制
强制刷新特定缓存内容:
# 通过curl发送无缓存头请求
curl -H "Cache-Control: no-cache" http://yourdomain.com/path/to/file
或在Nginx配置中添加缓存刷新路径:
location ~ /purge(/.*) {
proxy_cache_purge s3cache "$scheme$host$1";
}
本文发表于 0001-01-01,最后修改于 0001-01-01。
本站永久域名「 jiavvc.top 」,也可搜索「 后浪笔记一零二四 」找到我。