一 缓存输出配置
再开始讲解之前我们需要回顾一下,当我们浏览器输入url之后,再到我们的页面呈现浏览器做了什么事情,下面这张图可以清晰的理清这个概念(ps:从网上复制的图已经很好了我就不画了)。

通常情况下nginx配置文件存在于 /usr/local/nginx/conf/nginx.conf 下
etag on; /开启etag返回头
expires 14d; /设置过期时间为14天
二 增加nginx运行工作进程数量
通常来说一般设置为CPU的核心数X2 linux服务器下我们可以通过 cat /proc/cpuinfo | grep "physical id"|sort|uniq|wc -l 来查看CPU个数然后再通过 cat /proc/cpuinfo |grep "cpu cores"|uniq|wc -l 来得到每个CPU的核心数
例如 我的服务器CPU为1核心数为2
worker_processes 2;
三 设置资源超时时间
在我们设置服务器资源超时时间时,我们主要目的是节约资源为下一次的请求做准备。例如我们可以这样配置
keepalive_timeout 60;/客户端连接保持会话超时时间,超过这个时间,服务器断开这个链接
client_header_buffer_size 4k;/客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求头的大小不会超过1k,
open_file_cache max=102400 inactive=20s;/这个将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一致,inactive 是指经过多长时间文件没被请求后删除缓存(ps在我们查询下载一些报表时就很有用了)
open_file_cache_valid 30s;/30s检查一次缓存的有效信息
reset_timedout_connection on;、告诉nginx关闭不响应的客户端连接。这将会释放那个客户端所占有的内存空间。
send_timeout 15;/响应客户端超时时间,这个超时时间仅限于两个活动之间的时间,如果超过这个时间,客户端没有任何活动,nginx关闭连接
server_tokens off;/关闭nginx的返回版本信息(ps在我们编译nginx我们可以通过更改源码的方式将返回的服务器的名称改掉具体可以百度,此处只是关闭版本号)
client_max_body_size 10m;/限制文件上传大小为10M
四 将资源压缩加速传输
gzip on;
gzip_min_length 2k; /设置允许压缩的页面最小字节数,页面字节数从header头的Content-Length中获取,默认值是0,不管页面多大都进行压缩,建议设置成大于1K,如果小与1K可能会越压越大
gzip_buffers 4 32k;/压缩缓冲区大小,表示申请4个单位为32K的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果。
gzip_http_version 1.1 ;/压缩版本,用于设置识别HTTP协议版本,默认是1.1,目前大部分浏览器已经支持GZIP解压,使用默认即可
gzip_comp_level 6; 压缩比例,用来指定GZIP压缩比,1压缩比最小,处理速度最快,9压缩比最大,传输速度快,但是处理慢,也比较消耗CPU资源。
gzip_types text/css text/xml application/javascript :用来指定压缩的类型,‘text/html’类型总是会被压缩。默认值: gzip_types text/html (默认不对js/css文件进行压缩)
gzip_vary on :varyheader支持,改选项可以让前端的缓存服务器缓存经过GZIP压缩的页面,例如用Squid缓存经过nginx压缩的数据。
五 防盗链
防止其他网站应用本站资源消耗服务器资源
location ~*^.+\.(jpg|gif|png|swf|flv|wma|wmv|asf|mp3|mmf|zip|rar)$ {
valid_referers noneblocked www.XXXX.com XXXX.com;
none :意思是不存在的Referer头(表示空的,也就是直接访问,比如直接在浏览器打开一个图片)
blocked :意为根据防火墙伪装Referer头,如:“Referer:XXXXXXX”。
server_names :为一个或多个服务器的列表,0.5.33版本以后可以在名称中使用“*”通配符。
if($invalid_referer) {
return 404;
break;
}
}
好了以上的就是常用的nginx优化配置 下一篇再来聊聊js的常用优化小技巧