后浪笔记一零二四

  1. 安装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分钟未访问的缓存将被删除
  1. 配置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";
    }
}
  1. 路径映射与特殊处理

如果需要将特定路径映射到S3的不同目录:

location /static/ {
    proxy_pass https://$s3_bucket/project-static/;
    # 其他缓存和代理配置同上
}
  1. 启用压缩与性能优化
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;

高级配置选项

  1. 动静分离实现
# 静态资源(图片/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;
}
  1. 安全与访问控制
# 限速配置
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;
    # 其他配置
}
  1. 缓存刷新机制

强制刷新特定缓存内容:

# 通过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 」,也可搜索「 后浪笔记一零二四 」找到我。


上一篇 « 下一篇 »

赞赏支持

请我吃鸡腿 =^_^=

i ysf

云闪付

i wechat

微信

推荐阅读

Big Image