Nginx 的 proxy_store 缓存
来源:互联网 发布:星际战甲索玛p数据 编辑:程序博客网 时间:2024/06/03 02:59
有这么一个情况,
有个运行Asp的应用,比较土,还是用本地 *.mdb 的数据库。这么一来,就不可能通过 Apache ::: asp 这样的插件令其运行在Linux的环境中。而且是相当烂的一个 asp 程序,连html模板都没单独目录存放,直接跟 *.asp 混在一块。
幸好这个世界有 Nginx, 是对待这种破东西最好的优化。
如果直接靠 IIS 既处理 asp 又处理静态文件的话,流量一大性能是不堪想象了。
(在ab压力测试中, 就100线程请求一个 gif 的静态文件做测试, 已经令IIS的CPU相当不安)
2台服务器,运行架构计划为最简单的 Nginx –> IIS
就通过 Nginx Proxy 到IIS 的80端口上。
但测试的时候发现,虽然速度瞬间得到体现,但每次请求,Nginx 都会往IIS上拉文件,特别是静态文件。
大,而且会让IIS的cpu不安分。
原本试用在 Linux 下 mount
最后用上了 Nginx proxy_store ,Nginx 直接把静态文件在本地硬盘创建并读取,
效果相当好,而且某程度上对待这么烂的应用要装个Squid 确实有点大题小作。
但 Proxy_store 跟 Squid 是有区别的!! 最明显的一点在于其不具有expires,无法通过程序控制cache什么时间过期。往后要写个脚本定期删除缓存目录中的内容,不过这也正合我意。
以下是配置方式:
如果需要将文件缓存到本地,则需要增加如下几个子参数:
proxy_store on;
proxy_store_access user:rw group:rw all:rw;
proxy_temp_path 缓存目录;
其中,
proxy_store on 启用缓存到本地的功能,
proxy_temp_path 指定缓存在哪个目录下,如:proxy_temp_path /var/nginx_cache;
在经过上一步配置之后,虽然文件被缓存到了本地磁盘上,但每次请求仍会向远端拉取文件,为了避免去远端拉取文件,还必须增加:
即改成有条件地去执行proxy_pass,这个条件就是当请求的文件在本地的proxy_temp_path指定的目录下不存在时,再向后端拉取。
整体配置例子:
- Nginx 的 proxy_store 缓存
- Nginx 的 proxy_store 缓存
- Nginx缓存模块proxy_store
- lua实现nginx proxy_store的purge缓存清理的方法
- Nginx实践1 利用proxy_store实现高效的静态文件分布缓存服务器
- Nginx实践:用proxy_store实现高效的静态文件分布缓存服务器
- CentOS 5.9 下nginx proxy_store的使用
- Nginx之proxy_store模块
- 让nginx的proxy_store和proxy_cache支持ctrl+f5和PURGE二种方
- nginx的缓存设置
- nginx的缓存配置
- Nginx缓存的基本思路
- nginx的缓存
- Nginx的Web缓存服务
- nginx缓存功能的设置
- nginx的反向代理缓存
- nginx的反向代理缓存
- Nginx的Web缓存服务
- 软件工程 之 系统设计
- 软件工程 之 系统编码
- Java.lang.NullPointerException
- c#输出特殊字符
- 软件工程 之 测试运行
- Nginx 的 proxy_store 缓存
- Nginx实践:用proxy_store实现高效的静态文件分布缓存服务器
- c#中如何跨线程调用windows窗体控件?
- [Linux调试]Linux的Signal及Singal处理(SIGQUIT SIGKILL SIGBUS等)
- 冒泡排序来也
- GIt_Ubuntu下git配置
- intel x86 cpu系列的寻址方式
- 真正能在windows下编译的linux 0.11,不是在Cygwin,也不是在虚拟机里!
- C# 一个页面,多个Updatepannel,多个Timer