您的位置:首页 > 运维架构 > Nginx

服务器性能优化(一) --- Nginx:静态文件优化

2014-12-06 18:33 369 查看
Nginx作为web服务器,对于静态文件的优化有很多的长处在此我就将静态文件优化分为3步,实现高性能的读取

注:通常所指的静态文件为:js,css,jpg,jpeg,png,gif,swf等


将Nginx作为前端反向代理,缓存静态文件

Nginx提供代理缓存,在此技术上显示缓存静态文件,能大大提高资源的获取速度,显著降低系统调用静态资源所产生的I/O瓶颈
http{
//反向代理设置
upstream realserver{
server localhost:88;
}
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 /tmp/proxy_temp_dir;
//代理缓存设置
proxy_cache_path /tmp/proxy_cache_dir levels=1:2 keys_zone=cache_one:100m inactive=1d max_size=10g;
}
location / {
//代理设置
proxy_pass http://realserver;//对应upstream后的名称 proxy_setHeader Host $host;
proxy_setheader X-Forwarded-For $remote_addr;
//代理缓存设置
proxy_cache cache_one;//对应proxy_cache_path中的keys_zone
proxy_cache_valid 200 304 1d;//对于200及304的http页面缓存
proxy_cache_key $host$uri$is_args$args;//缓存的key值
}



Gzip压缩及设定HTTP请求头

http{
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_disable "MSIE [1-6]\.";
}
server{
gzip_proxied any;//对于任意访问都进行gzip压缩
//如果是后端服务器,则需要设置
gzip_vary on;//用于写响应头Vary: Accept-Encoding,让前端代理进行压缩
}
Localation / {
expires 1d;//写请求响应头
}



利用模块,压缩js及css,自动生成图片缩略图

我推荐3个模块针对静态文件进行优化:

ngx_pagespeed:这款是google开发的对于页面加速,提供全面的解决方案,内部功能很多,上诉2个步骤的功能也包含,还能去除js和css文件中的空白换行等,进行文件压缩
ngx_image_thumb:主要功能是对请求的图片进行缩略/水印处理,支持文字水印和图片水印,程序中不用对用户上传的图片进行处理,在需要的时候才生成所需的图片,无疑,该模块成为图片处理的利器,开源中国上有针对该模块的详细说明,点击
ngx_http_concat:主要功能是实现对于js和css文件的合并,用一个请求实现多个文件调用,可以有效的降低页面的请求数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: