`

Nginx 下缓存静态文件(如css js)(转)

阅读更多

目的:缓存nginx服务器的静态文件。如css,js,htm,html,jpg,gif,png,flv,swf,这些文件都不是经常更新。便于缓存以减轻服务器的压力。
实现: nginxproxy_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:2keys_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:200minactive=1dmax_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访问静态文件不下载.rar

    标题 "nginx访问静态文件不下载" 暗示了用户可能遇到了在使用Nginx服务器时,尝试访问静态文件(如HTML、CSS、JavaScript或图片等)却导致浏览器下载文件而不是正常显示的情况。Nginx是一款高性能的HTTP和反向代理...

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

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

    nginx发布前端静态文件配置

    本文将深入探讨如何配置Nginx来发布前端静态文件,这通常是Web应用程序的HTML、CSS、JavaScript和其他资源。 首先,了解基本的Nginx配置结构至关重要。Nginx的配置文件通常位于`/etc/nginx/nginx.conf`,但也可以...

    nginx 映射本地文件

    - **静态文件托管**:为前端开发提供静态资源服务,如CSS、JS文件,开发者可以直接引用URL进行调试。 - **API文档**:将API文档作为HTML文件存储在服务器上,通过Nginx映射提供在线查看服务。 - **日志查看**:将...

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

    因为静态文件(比如css,js, 图片)中,很多都是不经常更新的。nginx使用proxy_cache将用户的请求缓存到本地一个目录。下一个相同请求可以直接调取缓存文件,就不用去请求服务器了。 毕竟,IO密集型服务的处理是...

    nginx文件资源下载

    它不仅可以作为静态文件服务器,处理 HTML、CSS、JavaScript 等资源的下载请求,还可以作为动态内容的代理,将请求转发给后端的 PHP、Java 等应用服务器。在本篇中,我们将深入探讨 Nginx 如何配置来实现文件资源的...

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

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

    java静态文件处理

    4. **使用Nginx或Apache反向代理**:另一种常见策略是将静态文件托管在一个高性能的Web服务器(如Nginx或Apache)上,然后通过Java应用服务器(如Tomcat)反向代理请求。这样,静态文件请求可以被高效地处理,而Java...

    tomcat下webapps防止刷新报错的静态文件

    这是因为Tomcat在更新应用时,会重新加载Web应用目录下的文件,而在这个过程中,静态资源文件如JavaScript、CSS、图片等可能会在短暂的时间内不可用,导致用户请求无法正常处理。这个问题对于开发环境尤其明显,因为...

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

    在本文中,我们将介绍使用 Spring Boot 的缓存机制来缓存静态文件,从而提高页面加载速度。 一、静态文件缓存处理的必要性 当我们在 PC 上访问 Web 项目时,静态文件的加载速度影响不大,但是当在移动设备上访问时...

    nginx负载均衡配置文件demo

    此外,Nginx还支持缓存静态资源,进一步优化性能。在`location`块中添加`proxy_cache`指令,可以将响应结果存储在缓存中,下次相同请求可以直接从缓存返回,减少对后端服务器的压力: ```nginx location ~* \.(jpg|...

    Nginx1.11.9安装文件

    除此之外,Nginx还支持静态文件服务,如HTML、CSS、JavaScript、图片等。只需将静态文件放置在指定的根目录下,并在配置文件中指明即可。例如: ```conf http { server { listen 80; server_name static.example...

    nginx1.18 nginx1.18 nginx1.18

    3. **静态文件服务**:Nginx 在处理静态资源如 HTML、CSS、JavaScript 文件时非常高效,减少了对后端动态服务器的压力。 4. **URL 转发与重写**:通过配置 Nginx 配置文件,可以实现 URL 的转发和重写,这对于网站...

    Tomcat无法加载css和js等静态资源文件的解决思路

    综上所述,解决Tomcat无法加载CSS和JS等静态资源的问题,需要从服务器配置、应用部署、路径设置、安全策略、缓存管理和文件权限等多个角度进行排查。通过逐个检查和修复这些潜在问题,一般都能成功解决静态资源加载...

    nginx-1.9.15文件下载服务器

    1. **静态文件服务**:Nginx 能够高效地处理静态文件(如 HTML、CSS、JavaScript、图片等),这是其作为文件下载服务器的基础。通过配置 Nginx,可以设置特定的目录供用户下载所需文件。 2. **反向代理**:Nginx ...

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

    3. **合并和缩小CSS/JS文件**:将多个CSS或JavaScript文件合并为一个文件,可以减少HTTP请求的数量,同时压缩文件内容,进一步提升加载速度。 4. **使用HTTP2**:HTTP2协议支持多路复用,可以同时处理多个请求,...

    Nginx 应用技术指南Nginx Tips【第二版】.zip

    - **静态资源处理**:Nginx在处理静态文件如HTML、CSS、JavaScript等时表现出色,了解如何配置Nginx来优化静态文件的缓存和分发。 3. **反向代理** - **代理设置**:掌握如何配置Nginx作为反向代理,将请求转发到...

    WIN下Nginx缓存加速配置方法

    ### WIN下Nginx缓存加速配置方法 在Windows环境下配置Nginx进行缓存加速是一种常见的优化方式,尤其对于需要频繁访问静态资源的应用场景来说,可以显著提高响应速度、减轻后端服务器的压力以及降低带宽消耗。下面将...

Global site tag (gtag.js) - Google Analytics