`

nginx 静态文件缓存

 
阅读更多

目的: 缓存nginx服务器的静态文件。如css,js,htm,html,jpg,gif,png,flv,swf,这些文件都不是经常更新。便于缓存以减轻服务器的压力。
实现: nginx proxy_cache可以将用户的请缓存到本地一个目录,当下一个请求时可以直接调取缓存文件,就不用去后端服务器去取文件了。
配置: 打开配置文件/etc/nginx/nginx.conf

user  www www;
worker_processes 2;
error_log  /var/log/nginx/nginx_error.log  crit;
worker_rlimit_nofile 65535;
events
{
  use epoll;
  worker_connections 65535;
}

http
{
  include       mime.types;
  default_type  application/octet-stream;

  server_names_hash_bucket_size 128;
  client_header_buffer_size 32k;
  large_client_header_buffers 4 32k;
  client_max_body_size 8m;

  sendfile on;
  tcp_nopush     on;
  keepalive_timeout 0;
  tcp_nodelay on;

  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_read_timeout 300;
  fastcgi_buffer_size 64k;
  fastcgi_buffers 4 64k;
  fastcgi_busy_buffers_size 128k;
  fastcgi_temp_file_write_size 128k;
  ##cache##
  proxy_connect_timeout 5;
  proxy_read_timeout 60;
  proxy_send_timeout 5;
  proxy_buffer_size 16k;
  proxy_buffers 4 64k;
  proxy_busy_buffers_size 128k;
  proxy_temp_file_write_size 128k;
  proxy_temp_path /home/temp_dir;
  proxy_cache_path /home/cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;
  ##end##

  gzip    on;
  gzip_min_length   1k;
  gzip_buffers   4 8k;
  gzip_http_version  1.1;
  gzip_types   text/plain application/x-javascript text/css  application/xml;
  gzip_disable "MSIE [1-6]\.";

  log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
             '$status $body_bytes_sent "$http_referer" '
             '"$http_user_agent" $http_x_forwarded_for';
  upstream appserver { 
        server 192.168.1.251;
  }
  server {
        listen       80 default;
        server_name blog.slogra.com;
        location ~ .*\.(gif|jpg|png|htm|html|css|js|flv|ico|swf)(.*) {
              proxy_pass http://appserver ;
              proxy_redirect off;
              proxy_set_header Host $host;
              proxy_cache cache_one;
              proxy_cache_valid 200 302 1h;
              proxy_cache_valid 301 1d;
              proxy_cache_valid any 1m;
              expires 30d;
        }
        location ~ .*\.(php)(.*){
             proxy_pass http://appserver ;
             proxy_set_header        Host $host;
             proxy_set_header        X-Real-IP $remote_addr;
             proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for; 
        }
        access_log /var/log/nginx/blog.slogra.com.log;
  }
}
红色部分是配置缓存的参数。
说明:
1、http段设置。
proxy_temp_path /home/temp_dir;设置临时目录
proxy_cache_path /home/cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;设置缓存目录为二级目录,共享内存区大小,非活动时间,最大容量,注意临时目录要跟缓存目录在同一个分区。
2、server段设置 
请求静态文件设置。
proxy_cache cache_one;设置缓存共享内存区块,也就是keys_zone名称。
proxy_cache_valid 200 302 1h;设置http状态码为200,302缓存时间为1小时。
expires 30d;设置失期时间,为30天
请求动态文件设置。
proxy_pass http://appserver ;不进行缓存,直接转到后端服务器。
测试: 当客户端发起http请求时在服务器上会产一个缓存文件如
 

/home/cache/0/b9/8bd841b1c44ee5b91457eb561e44eb90

OK

分享到:
评论

相关推荐

    nginx静态文件缓存的解决方案1

    【Nginx 静态文件缓存解决方案】 Nginx 是一款高性能的 HTTP 和反向代理服务器,常用于处理静态资源,以减轻后端服务器的压力。为了进一步提高静态资源的访问效率,我们可以利用 Nginx 的缓存功能。下面详细介绍...

    nginx访问静态文件不下载.rar

    - Nginx可以通过设置缓存策略来提高静态文件的访问速度。例如,可以使用`expires`指令设置缓存过期时间,`add_header Cache-Control max-age=31536000;`表示一年内可缓存。 - 使用`gzip`压缩静态资源,减少传输...

    nginx简单的负载,缓存静态文件配置

    nginx配置文件nginx.conf ,主要标记了nginx 的负载配置upstream,静态资源缓存,是否开启压缩

    如何在nginx中配置缓存静态文件

    这篇教程说明你应该怎样配置 nginx、设置 HTTP 头部过期时间,用 Cache-Control 中的 max-age 标记为静态文件(比如图片、 CSS 和 Javascript 文件)设置一个时间,这样用户的浏览器就会缓存这些文件。这样能节省...

    nginx静态缓存插件ngx_slowfs_cache.zip

    ngx_slowfs_cache 是 nginx 模块,允许缓存静态文件(使用 root 指令管理)。 这使得能够为存储在慢文件系统上的文件...}清理缓存需要借助插件 ngx_cache_purge 使用案例:nginx扩展模型ngx_slowfs_cache本地静态缓存

    nginx发布前端静态文件配置

    以上就是关于Nginx发布前端静态文件的基本配置。理解并熟练掌握这些配置,将有助于构建高效、可靠的Web服务。不过,实际部署时还需要根据具体需求进行调整,例如SSL/TLS证书配置、访问日志记录等。在实践中不断学习...

    使用nginx缓存服务器上静态文件的设置方法

    下一个相同请求可以直接调取缓存文件,就不用去请求服务器了。 毕竟,IO密集型服务的处理是nginx的强项。 二、如何进行设置 先上个栗子: http{ proxy_connect_timeout 10; proxy_read_timeout 180; proxy_send_...

    nginx 伪静态 重定向

    ### Nginx 伪静态与重定向:深入解析与应用实例 #### 1. 引言 在现代网站开发与维护中,面对网页目录结构变动、网页重命名、扩展名改变或是网站域名变更等场景,如何高效处理这些变化,确保用户体验不受影响,同时...

    nginx TOMCAT 文件下载 上传 进度条 缓存

    标题 "nginx TOMCAT 文件下载 上传 进度条 缓存" 涉及到的是在Web服务器场景中,如何利用Nginx和Tomcat处理文件的下载、上传以及实现进度条显示和缓存优化的技术点。下面将详细介绍这些内容。 1. **Nginx与Tomcat的...

    详解Nginx 静态文件服务配置及优化

    优化Nginx静态文件服务的方法包括: 1. **缓存控制**:通过设置HTTP响应头中的 `Cache-Control` 和 `Expires`,可以让浏览器缓存静态资源,减少不必要的网络传输,提高页面加载速度。 2. **压缩输出**:启用Gzip...

    Spring Boot Web 静态文件缓存处理的方法

    如果不差钱的公司可以将静态文件放在 CDN 上来加快访问速度,或者用 Nginx 来做静态文件的缓存。 二、使用 Spring Boot 缓存机制来缓存静态文件 在 Spring Boot 中配置静态文件缓存只需要在配置文件中加入以下配置...

    Nginx越界读取缓存漏洞 CVE-2017-7529

    如果二次请求命中了该缓存文件,则Nginx会直接将该文件中的“HTTP返回包体”返回给用户。 如果我的请求中包含Range头,Nginx将会根据我指定的start和end位置,返回指定长度的内容。而如果我构造了两个负的位置,如...

    nginx 映射本地文件

    Nginx擅长处理静态文件请求,可以高效地进行文件传输,因此在静态资源服务方面表现出色。 ### 2. 实现本地文件映射的步骤 #### 2.1 安装Nginx 首先,你需要在你的服务器上安装Nginx。在Ubuntu或Debian系统中,...

    nginx文件资源下载

    【Nginx 文件资源下载详解】 ...总结,Nginx 不仅能提供高效的静态文件服务,还能实现文件资源的便捷下载,是构建高性能下载站点的理想选择。通过灵活配置,我们可以满足各种场景下的文件服务需求。

    NGINX反向代理缓存[参考].pdf

    总结起来,NGINX的反向代理和缓存功能可以帮助我们有效地管理流量,减轻后端服务器的负担,同时通过缓存静态内容来显著提高网站的加载速度。正确配置这些设置,即使在资源有限的情况下,也能实现高性能的网站服务。...

    nginx缓存不起作用问题解决方法

    可以通过在nginx配置文件中添加特定的配置指令来强制nginx忽略某些响应头,这样即使源服务器返回了禁止缓存的指令,nginx也会忽略它们并进行缓存。具体操作如下: 在nginx的配置文件(通常是nginx.conf或者对应站点...

    Nginx各种配置(包括负载均衡、静态代理、动静分离)

    Nginx处理静态资源(如图片、CSS、JavaScript等)非常高效,常用于作为静态文件服务器。以下是一个基本的静态文件代理配置示例: ```nginx location /static/ { root /var/www/html; index index.html index.htm;...

    Nginx搭建图片服务器(静态资源缓存服务器).zip

    在这个配置中,我们创建了一个名为`my_cache`的缓存区域,设置了缓存文件的存储路径和过期策略。对于图片请求,我们使用正则表达式匹配文件扩展名,并设置了缓存控制头,使浏览器能够缓存图片。如果后端服务器存在,...

Global site tag (gtag.js) - Google Analytics