原创作品,允许转载,转载时请务必以超链接形式标明文章
原始出处 、作者信息和本声明。否则将追究法律责任。
http://lizhenliang.blog.51cto.com/7876557/1664428
1
|
# apachectl –M |grep deflate
|
1
|
# /usr/local/apache/bin/apxs –c –I –A apache源码目录/modules/mod_deflate.c
|
1
2
3
4
5
6
|
<IfModulemod_deflate.c>
DeflateCompressionLevel6
#压缩等级(1-9),数值越大效率越高,消耗CPU也就越高
SetOutputFilterDEFLATE
#启用压缩
AddOutputFilterByTypeDEFLATE text
/html
text
/plain
text
/xml
#压缩类型
AddOutputFilterByTypeDEFLATE css js html htm xml php
<
/IfModule
>
|
1
|
# apachectl –M |grep expires
|
1
|
# /usr/local/apache/bin/apxs –c –I –A apache源码目录/modules/mod_expires.c
|
1
2
3
4
5
6
|
<IfModulemod_expires.c>
ExpiresActiveon
#启用有效期控制,会自动清除已过期的缓存,然后从服务器获取新的
ExpiresDefault
"accessplus 1 days"
#默认任意格式的文档都是1天后过期
ExpiresByTypetext
/html
"access plus 12 months"
ExpiresByTypeimage
/jpg
"access plus 12 months"
#jpg格式图片缓存12月
<
/IfModule
>
|
1
2
3
4
5
6
7
8
|
<IfModuleprefork.c>
StartServers 8
#默认启动8个httpd进程
MinSpareServers 5
#最小的空闲进程数
MaxSpareServers 20
#最大的空闲进程数,如果大于这个值,apache会自动kill一些进程
ServerLimit 256
#服务器允许进程数的上限
MaxClients 256
#同时最多发起多少个访问,超过则进入队列等待
MaxRequestsPerChild 4000
#每个进程启动的最大线程
<
/IfModule
>
|
1
2
3
4
5
6
7
8
9
10
|
http {
……
gzip
on;
gzip_min_length 1k;
#允许压缩的页面最小字节数,默认是0,多大都压缩,小于1k的可能适得其反
gzip_buffers 4 16k;
#gzip申请内存的大小,按数据大小的4倍去申请内存
gzip_http_version 1.0;
#识别http协议版本
gzip_comp_level 2;
#压缩级别,1压缩比最小,处理速度最快,9压缩比最大,处理速度最慢
gzip_types text
/plainapplication/x-javascripttext/css
application
/xml
image
/jpg
;
#压缩数据类型
gzip_vary on;
#根据客户端的http头来判断,是否需要压缩
}
|
1
2
3
4
5
6
7
8
9
10
|
server {
location ~ .*\.(gif|jpg|png|bmp|swf)$
#缓存数据后缀类型
{
expires 30d;
#使用expires缓存模块,缓存到客户端30天
}
location ~ .*\.( jsp|js|css)?$
{
expires 1d;
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
http {
……
fastcgi_cache_path
/usr/local/nginx/fastcgi_cache
levels=1:2 keys_zone=TEST:10m inactive=5m;
# FastCGI缓存指定一个文件路径、目录结构等级、关键字区域存储时间和非活动删除时间
fastcgi_connect_timeout 300;
#指定连接到后端FastCGI的超时时间
fastcgi_send_timeout 300;
#指定向FastCGI传送请求的超时时间
fastcgi_read_timeout 300;
#指定接收FastCGI应答的超时时间
fastcgi_buffer_size 64k;
#指定读取FastCGI应答第一部分需要多大的缓冲区
fastcgi_buffers 4 64k;
#指定本地需要用多少盒多大的缓冲区来缓冲FastCGI的应答请求
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
#表示在写入缓存文件时使用多大的数据块,默认值是fastcgi_buffers的两倍
fastcgi_cache TEST;
#开启fastcgi_cache缓存并指定一个TEST名称
fastcgi_cache_valid 200 302 1h;
#指定200、302应答代码的缓存1小时
fastcgi_cache_valid 301 1d;
#将301应答代码缓存1天
fastcgi_cache_valid any 1m;
#将其他应答均缓存1分钟
{
|
1
2
3
4
5
|
pm =dynamic
#两种控制子进程方式(static和dynamic)
pm.max_children= 5
#同一时间存活的最大子进程数
pm.start_servers= 2
#启动时创建的进程数
pm.min_spare_servers= 1
#最小php-fpm进程数
pm.max_spare_servers= 3
#最大php-fpm进程数
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
http {
……
proxy_temp_path
/usr/local/nginx/proxy_cache/temp
;
#缓存临时目录
proxy_cache_path
/usr/local/nginx/proxy_cache/cache
levels=1:2 keys_zone=one:10m inactive=1d max_size=1g;
#缓存文件实际目录,levels定义层级目录,1:2说明1是一级目录,2是二级目录,keys_zone存储元数据,并分配10M内存空间。inctive表示1天没有被访问的缓存就删除,默认10分钟。max_size是最大分配磁盘空间
server {
listen 80;
server_name 192.168.1.10;
location / {
proxy_cache one;
#调用缓存区
#proxy_cache_valid 200 304 12h; #可根据HTTP状态码设置不同的缓存时间
proxy_cache_valid any 10m;
#缓存有效期为10分钟
}
#清除URL缓存,允许来自哪个网段的IP可以清除缓存(需要安装第三方模块"ngx_cache_purge"),清除URL缓存方法:访问http://192.168.1.10/purge/文件名
location ~
/purge
(/.*){
allow 127.0.0.1;
allow 192.168.1.0
/24
;
deny all;
proxy_cache_purge cache_one$host$1$is_args$args;
}
}
|