Nginx 缓存设置提高性能
作者:小鱼的互联网观察 发布时间:January 21, 2013 分类:linux
试验了用128MB的小机Nginx反代+缓存跑了个3万ip的站,负载一直在0.01-0.02,没感觉
目前,Nginx的缓存控制机制是软肋,特别是清理过期缓存方面,有2种方法来清理过期的缓存,当然,nginx自身也会清理的,但清理的机制不好。所以,只能do it yourself.
1. Cron 定时删除
下面是每2小时删除修改时间超过2天的文件
#clear cache pic
01 */2 * * * root find /path/to/your/site/ -type f -mtime +2 -print0 | xargs -0 -r rm >/dev/null 2>&1
2. Purge 方式触发删除
location / {
if ($request_method ~ "PURGE"){
rewrite (.*) /purge.php last;
}
add_header X-Cache HIT;
error_page 404 = @fetch;
}
location /purge.php {
internal;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /www/21andy.com/fastcgi$fastcgi_script_name;
}
<?php
header('Cache-Control: max-age=0');
$uri = $_SERVER['REQUEST_URI'];
$doc_root = $_SERVER['DOCUMENT_ROOT'];
$file = $doc_root.$uri;
echo $file."\n";
if(is_file($file)) {
echo "File Clear...";
@unlink($file);
} else {
echo "File Not Found...";
}
也可以装插件 ngx_cache_purge
下载地下: http://wiki.nginx.org/NginxChsCachePurge
http {
proxy_cache_path /tmp/cache keys_zone=tmpcache:10m;
server {
location / {
proxy_pass http://127.0.0.1:8000;
proxy_cache tmpcache;
proxy_cache_key $uri$is_args$args;
}
location ~ /purge(/.*) {
allow 127.0.0.1;
deny all;
proxy_cache_purge tmpcache $1$is_args$args;
}
}
}
注意,purge方式删除的话,由于nginx反代保存的是纯静态内容,我不想在反代的机子上装PHP
所以,应该由后端主动来触发完成
另外,由于是纯静态内容,很多以前直接用php的方式处理的东西,现在需要改成js+后端来处理了
详细不说了,思路就这样
BTW: https://github.com/bummercloud/nginx-fastcgi-cache-purge
相关文章
- web服务器Nginx系列:安装日志分析软件GoAccess
- vpsmate 安装完毕重启后无法进入:8888
- 常用linux命令
- CentOS 最小化安装后配置
- 使用webmin管理web服务器
- locvps优惠测试
- Nginx php-fpm Benchmark 的性能测试
- 版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0
- 原文网址:http://tianmeng.org/archives/297/
- 最后修改时间:2013年01月21日 01:01:53
当前暂无评论 »