ZBLOG

使用nginx缓存上游的html,js,css这三种类型的文件

要使用 Nginx 缓存上游服务器的 HTML、JS 和 CSS 文件,你需要在 Nginx 配置中设置代理缓存,并指定缓存的文件类型。下面是一个基本的示例配置,展示了如何实现这一点:

  1. http {
  2. # 定义缓存区域
  3. proxy_cache_path /tmp/cache levels=1:2 keys_zone=my_cache:10m inactive=30d max_size=1g;
  4. server {
  5. listen 80;
  6. server_name example.com; # 替换为你的域名
  7. location / {
  8. proxy_pass http://upstream_server; # 替换为你的上游服务器地址
  9. proxy_cache my_cache; # 使用定义的缓存区域
  10. proxy_cache_valid 200 30d; # 对于状态码200的响应,缓存有效期为30天
  11. # 指定需要缓存的内容类型
  12. add_header X-Cache $upstream_cache_status;
  13. # 设置缓存控制
  14. proxy_ignore_headers Cache-Control Expires;
  15. # Caching based on content types
  16. set $cache_control "no-cache";
  17. if ($http_accept ~* "text/html") {
  18. set $cache_control "max-age=31536000";
  19. }
  20. if ($http_accept ~* "application/javascript|text/css") {
  21. set $cache_control "max-age=31536000";
  22. }
  23. add_header Cache-Control $cache_control;
  24. }
  25. }
  26. }

配置解析:

  1. proxy_cache_path:定义了一个用于存储代理缓存的路径和参数。

    • /tmp/cache 是实际存储的位置。
    • levels=1:2 定义了目录结构。
    • keys_zone=my_cache:10m 创建一个名为 my_cache 的共享内存区域,用于存储元数据。
    • inactive=30d 设置不活跃文件将在30天后被删除。
    • max_size=1g 设置最大缓存大小为1GB。
  2. server 块:配置虚拟主机。

  3. location /

    • proxy_pass:将请求转发到上游服务器(请替换为你自己的上游服务器地址)。
    • proxy_cache:启用指定名称 (my_cache) 的代理缓存。
    • proxy_cache_valid:设置对于状态码200(成功)的响应,保持30天有效期。
  4. add_header X-Cache:添加一个响应头,用于显示是否命中缓存。

  5. proxy_ignore_headers Cache-Control Expires:忽略来自后端服务器的这些头,以便更好地控制客户端与 Nginx 的交互。

  6. 内容类型设置 (Cache-Control)

    • 根据请求中的 Accept Header 确定文件类型并设置相应的 Cache-Control 响应头。这样可以根据接受到的内容类型进行适当的 caching 策略。

请根据具体需求调整这些配置,并确保 nginx.conf 文件位置正确无误。同时,不要忘记在修改配置后重启或重新加载 Nginx 服务使改动生效。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=22180

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?