Nginx代理缓存加速服务器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx代理缓存加速服务器相关的知识,希望对你有一定的参考价值。
nginx缓存概述
提供与Squid类似的缓存,把URL以及相关信息当成key,用MD5编码哈希后,把数据文件保存在硬盘上,并且只能为指定的URL或者状态码设置过期时间,并不支持类似 squid的purge命令来手动清除指定缓存页面,但是可以通过第三方的ngx_cache_purge来清除指定的URL缓存
Nginx的缓存加速功能是由proxy_cache(用于反向代理和静态缓存)和fastcgi_cache(php动态缓存)两个功能模块完成
1.proxy_cache原理
2.Nginx缓存特点
缓存稳定,运行速度与Squid相差无几(因为都使用硬盘缓存)
对多核CPU的利用率比其他的开源软件好
支持高并发请求数,能同时承受更多的访问请求
3.Nginx缓存、Varnish、Squid对比
Squid:应用较早,支持传统、透明、反向等功能的一款应用软件,设置较复杂,一般配合CDN
Varnish:新兴软件,设计简单,使用内存缓存数据(快)
Nginx缓存:需通过调用模块实现缓存功能,基于硬盘缓存数据
案例:Nginx缓存加速
1、环境准备(nginx)
1)配置网卡IP vim /etc/sysconfig/network-scripts/ifcfg-eth0
2)关闭防火墙并设置为开机自动禁用
/etc/init.d/iptables stop && chkconfig --level 35 iptables off
3)临时允许所有selinux操作 setenforce 0
2、安装nginx
1)安装依赖包 yum -y install pcre pcre-devel
2)解压nginx模块(支持nginx缓存功能)ngx_cache_purge-2.0.tar.gz到/usr/src/目录下
3)解压nginx到/usr/src/目录 tar zxvf nginx-1.6.0.tar.gz -C /usr/src/
4)新建nginx运行用户 useradd -M -s /sbin/nologin nginx
5)进入nginx解压目录并编译安装nginx
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
--with-http_stub_status_module --with-pcre
--add-module=/usr/src/ngx_cache_purge-2.0/
选项注释:
--prefix=/usr/local/nginx:指定Nginx安装目录为/usr/local/nginx
--user=nginx:指定Nginx运行用户为nginx
--group=nginx:指定Nginx运行组为nginx
--with-http_stub_status_module:开启状态统计(一个简单的页面,显示访问量等)
--with-pcre:启用pcre库支持
--add-module=/usr/src/ngx_cache_purge-2.0/:指定需额外加载模块的目录位置
6)设置nginx的环境变量
echo "PATH=$PATH:/usr/local/nginx/sbin">>/etc/profile
//立即生效该PATH变量 source /etc/profile
3、配置Nginx
1)编辑nginx配置文件 vim /usr/local/nginx/conf/nginx.conf
2)创建nginx临时缓存目录 mkdir /var/cache/nginx
3)检测Nginx配置文件是否有误 nginx -t
注:在运行“nginx -t”命令后,当文件确认无误后,会自动在指定目录下自动新建临时、缓存目录
4)设置系统句柄数,注意单次生效 ulimit -SHn 65535
5)运行nginx服务 nginx
6)监听80端口 netstat -utpln | grep 80
4、配置Web服务器
1)配置网卡IP vim /etc/sysconfig/network-scripts/ifcfg-eth0
2)关闭防火墙并设置为开机自动禁用
/etc/init.d/iptables stop && chkconfig --level 35 iptables off
3)临时允许所有selinux操作 setenforce 0
4)安装apache服务 yum -y install httpd
5)Web服务器编写测试页面
echo "This is Web1">/var/www/html/index.html
6)启动httpd服务并设置为开机自启
/etc/init.d/httpd start && chkconfig --level 35 httpd on
5、缓存测试
1) IE --> http://192.168.1.10(Nginx服务器IP)
2)递归查看目录下内容,可以看见,刚才访问的页面已经缓存下来,并存储在../c/43/目录下(Nginx服务器) ls -R /var/cache/nginx/proxy_cache/
3)清除缓存IE --> http://192.168.1.10/purge/(手动清除/页面缓存)
注:测试访问时,使用“http://192.168.1.10”访问,那么在存储缓存Key时,是使用URL记录的,也是是说缓存的是“/”的缓存,那么清除缓存时应使用“http://192.168.1.10/purge/”或“http://192.168.1.10/purge”,不可使用“http://192.168.1.10/purge/index.html”清除
ls -R /var/cache/nginx/proxy_cache/
//(Nginx服务器)再次验证查看缓存目录,之前缓存的页面文件被清除
以上是关于Nginx代理缓存加速服务器的主要内容,如果未能解决你的问题,请参考以下文章