Nginx/Apache 对图片,css,js等优化,静态页面设置过期时间

  • 内容
  • 评论
  • 相关
  1. 图片,CSS,JS,html设置过期时间
  2. 不是本域名的重定向到本域名

Nginx 图片,css,js等优化,静态页面设置过期时间

    server{ 
        ... 
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { 
            expires      30d;#图片缓存30天 
        } 
        location ~ .*\.(js|css)?$ { 
            expires      12h;#js css缓存12小时 
        } 
        ... 

     

以上是在NGINX.CONF里复制的

我的站静态页面是如下设置的,伪静态也适用,这种方式是所有.html后缀都试用,如果不需要可以改改

静态页面设置过期时间3600秒,按后退按钮不会重新访问

 

sever{ 
    location / { 
         ....... 
          if ($request_uri ~ ^.+\.html) { 
            add_header Cache-Control max-age=3600,must-revalidate; 
        } 
        if ($host != 'www.lanmps.com') { 
            rewrite ^/(.*)$ http://www.lanmps.com/$1 permanent; 
        } 
    } 
}

 

 

上面这种情况,如果开发语言重新给HTTP头部设置过期时间,那么就会覆盖此处设置

nginx 设置GZIP压缩

 

gzip on; 
gzip_min_length 1k; 
gzip_buffers 4 16k; 
gzip_http_version 1.1; 
gzip_comp_level 2; 
gzip_types text/plain application/x-javascript application/javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; 
gzip_vary on; 
gzip_disable "MSIE [1-6]\.";

 

Apache 图片,css,js等优化,静态页面设置过期时间

 

<VirtualHost *:80> 
    ServerAdmin admin@lanmps.com 
    DocumentRoot "/var/www/html/" 
    ServerName www.lanmps.com:80 
    #ServerAlias *.lanmps.com 
    ErrorDocument 404 /404.html 
    #ErrorLog /var/www/log/lanmps.com.error.log 
    #CustomLog /var/www/log/lanmps.com.CustomLog common 
    <IfModule mod_expires.c> 
    ExpiresActive On 
    #开启过期时间功能 
    ExpiresByType image/gif A2592000 
    #设置 gif 图片过期时间 2592000秒 
    ExpiresByType image/jpeg A2592000 
    #设置 jpeg 图片过期时间 2592000秒 
    ExpiresByType image/png A2592000 
    #设置 png 图片过期时间 2592000秒 
    ExpiresByType application/x-shockwave-flash A2592000 
    #设置 flash过期时间 2592000秒 
    ExpiresByType text/css A2592000 
    #设置 css 过期时间 2592000秒 
    ExpiresByType application/x-javascript A2592000 
    ExpiresByType application/javascript A2592000 
    #设置 js 过期时间 2592000秒 
    ExpiresByType text/html A6000 
    #设置 html 过期时间 6000秒 
    </IfModule> 
    <IfModule mod_rewrite.c> 
    RewriteEngine on 
    #打开rewirte功能 
    RewriteCond %{HTTP_HOST} !^www.lanmps.com [NC] 
    #声明Client请求的URL地址中前缀不是www.lanmps.com,其中 [NC] 的意思是忽略大小写 
    RewriteRule ^(.*) http://www.lanmps.com/$1 [R=301,L] 
    #含义是如果Client请求的主机中的前缀符合上述条件,则直接进行跳转到http://www.lanmps.com/, 
    #[R=301] 表示永久重定向 
    #[L]意味着立即停止重写操作,并 不再应用其他重写规则 
    #.*是指匹配所有URL中不包含换行字符,()括号的功能是把所有的字符做一个标记,以便于后面的应用.就是引用前面里的 (.*)字符 
    </IfModule> 
    <IfModule mod_deflate.c> 
    SetOutputFilter DEFLATE 
    #必须的,就像一个开关一样,告诉apache对传输到浏览器的内容进行压缩 
    SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary 
    #设置对后缀gif,jpg,jpeg,png的图片文件进行压缩 
    SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary 
    #同上,就是设置不对exe,tgz,gz。。。的文件进行压缩 
    SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary 
    AddOutputFilterByType DEFLATE text/* 
    #设置对文件是文本的内容进行压缩,例如text/html  text/css  text/plain等 
    AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript 
    #这段代码你只需要了解application/javascript application/x-javascript这段就可以了,这段的意思是对javascript文件进行压缩 
    AddOutputFilterByType DEFLATE application/x-httpd-php application/x-httpd-fastphp 
    #这段是告诉apache对php类型的文件进行压缩 
    BrowserMatch ^Mozilla/4 gzip-only-text/html 
    # Netscape 4.x 有一些问题,所以只压缩文件类型是text/html的 
    BrowserMatch ^Mozilla/4.0[678] no-gzip 
    # Netscape 4.06-4.08 有更多的问题,所以不开启压缩 
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html 
    # IE浏览器会伪装成 Netscape ,但是事实上它没有问题 
</IfModule> 
</VirtualHost>