使用nginx 缓存 iCMS 伪静态网页 达到类静态的超快速访问
并比生成海量静态文件更容易管理
而且具备热门页面,缓存到内存.缓存页面长时间无访问自动过期等功能
nginx默认安装就会带有反向代理的功能,
但想要更好的使用,还得配备frickle.com的ngx_cache_purge模块,用于清除指定URL的缓存。
在功能上,Nginx已经具备Squid所拥有的Web缓存加速功能、清除指定URL缓存的功能。
而在性能上,Nginx对多核CPU的利用,胜过Squid不少。
另外,在反向代理、负载均衡、健康检查、后端服务器故障转移、Rewrite重写、易用性上,Nginx也比Squid强大得多。
这使得一台Nginx可以同时作为“负载均衡服务器”与“CDN缓存服务器”来使用.
网上好多文章都是多台服务器做缓存 然后反向代理到后台服务器
不过作为一个穷人哪来那么多服务器
所以我们要让NGINX既做WEB服务器也做缓存..
这样同样也能起到加速效果..缓存当静态用..
适合伪静态的网站使用..
缓存配置
http { #缓存配置 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 /cache/temp; #缓存目录 要跟临时目录在同一分区 #levels=1:2 目录层级 1:2 /a/bc #keys_zone=web_cache:100m web_cache缓存空间名,单页最大缓存100M #inactive=7d 过期时间 7天 #max_size=50g 缓存最大空间 50G proxy_cache_path /cache/www_OOXX_com_cache levels=1:2 keys_zone=web_cache:100m inactive=7d max_size=50g;}
配置网站反向代理
server { #rewrite "^/article/(d+).html$" /iCMS/article.php?id=$1 last; #rewrite "^/article/(d+)_(d+).html$" /iCMS/article.php?id=$1&p=$2 last; #这里不需要写article的rewrite, #/article/.+.html的访问已经通过proxy_cahce 到cache.www.OOXX.com 了 #所以 rewrite 要写到 cache.www.OOXX.com 的配置里 location ~ /article/.+.html$ { proxy_cache web_cache; proxy_cache_valid 200 304 301 302 10d; proxy_cache_valid any 1d; proxy_cache_key $host$uri$is_args$args; proxy_pass http://127.0.0.1:80; proxy_redirect off; proxy_hide_header Vary; proxy_set_header Host cache.www.OOXX.com; proxy_set_header Accept-Encoding ''; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-SERVER-NAME $host; proxy_set_header X-HTTP-HOST $host; proxy_ignore_headers "Cache-Control" "Expires"; add_header X-Cache "$upstream_cache_status - $upstream_response_time"; } #清理缓存 #举个例子 #缓存地址为:http://www.ooxx.com/article/123456.html #那么清理缓存的网址为: # http://www.ooxx.com/~purge/article/123456.html #当然你可以限制访问IP #或者把~purge改成别人猜不到 location ~ /~purge/(.*) { #allow all; #allow 127.0.0.1; #deny all; proxy_cache_purge web_cache $host/$1; break; }}
重点在 proxy_set_header Host cache.www.OOXX.com;
我们重新设置的Host
然后在服务器的host 文件里写上
127.0.0.1 cache.www.OOXX.com
不用把cache.www.OOXX.com 做A记录到服务器
这样速度是最快
配置cache.www.OOXX.com
server { listen 80; server_name cache.www.OOXX.com; root /data/www.OOXX.com; rewrite "^/article/(d+).html$" /iCMS/article.php?id=$1 last; rewrite "^/article/(d+)_(d+).html$" /iCMS/article.php?id=$1&p=$2 last; location ~ .php$ { include fcgi.conf; } error_page 500 502 503 504 /502.html; error_page 404 400 403 /404.html;}
清除nginx缓存
这个需要通过 nginx模块 ngx_cache_purge
清理
ngx_cache_purge 源码 https://github.com/FRiCKLE/ngx_cache_purge
wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gztar zxf ngx_cache_purge-2.3.tar.gz#切换到nginx目录cd nginx-1.6.2./configure --user=www --group=www --prefix=/usr/local/nginx --add-module=../ngx_cache_purge-2.3 --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6make;make install#安装完成!
具体安装需要根据自己的实际情况改变
希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, Fastadmin, ClassCMS, LeCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。