PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通

QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > CMS教程 > iCMS

nginx反向代理缓存,proxy_cache缓存的方法_其他

管理员 2024-12-15
iCMS
12

使用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修复,程序杀毒,插件定制都可以提供最佳解决方案。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部