5.Nginx作为web缓存服务器
Nginx作为web缓存服务器
从0.7.48版本开始,Nginx支持类似Squid的缓存功能。Nginx的web缓存服务主要由proxy_cache相关命令集合fastcgi_cache相关命令集构成,前者用于反向代理时对后端内容源服务器进行缓存,后者主要用于对FastCGI的动态程序进行缓存。此外,如果不想使用Nginx自带的缓存功能,也可使用第三方模块ngx_slowfs_cache来实现缓存服务器的配置。
- 在nginx下安装缓存服务器
这里使用Nginx自带的缓存模块,通过proxy命令来实现数据的缓存,所以在编译的时候要加上ngx_cache_purge模块,这个第三方模块是清理Nginx缓存的一个插件。
在网上下载ngx_cache_purge插件的最新版本,然后重新编译安装nginx。
./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-openssl=/usr/ --with-pcre=/usr/local/src/pcre-8.31 --add-module=/usr/local/src/ngx_cache_purge-2.3(文件解压后存放的位置)
- 配置Nginx缓存服务器
Nginx缓存服务器的配置主要通过proxy_cache相关命令来实现。
proxy_cache_path /backup/proxy_cache_dir levels=1:2 keys_zone=cache_one:4096m inactive=1d max_size=3g;
- poxy_cache_path:用于设置缓存的目录,后面跟缓存路径。最好将缓存目录放在一个独立的硬盘上。
- levels=1:2:levels用来设置目录深度,这里是两层目录深度,第一层是一个字符,第二层是两个字符。
- keys_zne:用来设置web缓存区名称,这里的cache_one后面的4096,表示内存缓存空间大小为4GB
- inactive:表示自动清除缓存文件的时间,这里的“d”表示1天没有被访问的内容自动清除,还可以使用分钟和小时计数,5m,5h。
- max_size:表示硬盘缓存空间可使用的最大值,默认情况下经访问的文件常将被放到内存中进行缓存,而在内存缓存空间不足时,Nginx会将不经常访问的数据从内存写到磁盘。
proxy_temp_path /backup/proxy_temp_dir;
- 用于指定临时缓存文件的存储路径,这里需要注意的是,两个存放缓存文件的目录必须在同一磁盘分区。
location / {
root html;
index index.html index.htm index.php;
proxy_cache cache_one; #反向代理缓存设置命令,语法为“proxy_cache zone|off“,默认为off,需要将proxy_cache命令放在location字段,这样匹配以此location的url才能被缓存。
proxy_cache_valid 200 304 12h; #对不懂HTTP状态码设置不同的缓存时间
proxy_cache_key $host$uri$is_args$args; #这个命令是设置以什么样的参数得到缓存的文件名,默认为”$scheme$proxy_host$request_uri”,表示以协议,主机名,请求uri(包括参数)做MD5得出缓存的文件名。这里以域名,URI,参数组合成Web缓存的key值,nginx会根据key哈希,存储缓存内容到二级缓存目录内
}
下面配置手动清除缓存策略:
location ~ /purge(/.*) {
allow 127.0.0.1;
allow 192.168.1.0/24;
deny all;
proxy_cache_purge cache_one $host$1$is_args$args;
}
这里设置可以清除缓存的ip和网段,下面说的是清除的内容
location ~ \.php?$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name;
include fastcgi_params;
}
以.php结尾的文件不用缓存
手动清除缓存的方法
http://192.168.1.120/index.html 访问
http://192.168.1.120/purge/index.html 清除缓存策略
t
- 验证我们的缓存服务是否成功启动
[root@Goun conf]# ps -ef | grep nginx
root 9390 1 0 20:52 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
www 9392 9390 0 20:52 ? 00:00:00 nginx: worker process
www 9393 9390 0 20:52 ? 00:00:00 nginx: cache manager process
进程nginx:cache manager process这个进程是用来管理缓存服务和文件的。
5.Nginx作为web缓存服务器的更多相关文章
- 七、Nginx学习笔记七Nginx的Web缓存服务
user www; worker_processes 1; error_log /usr/local/nginx/logs/error.log crit; pid /usr/local/nginx/l ...
- nginx的web缓存服务环境部署记录
web缓存位于内容源Web服务器和客户端之间,当用户访问一个URL时,Web缓存服务器会去后端Web源服务器取回要输出的内容,然后,当下一个请求到来时,如果访问的是相同的URL,Web缓存服务器直接输 ...
- nginx反向代理缓存服务器的构建
一:代理服务可简单的分为正向代理和反向代理: 正向代理:用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标Web服务器的HTTP请求先发送 ...
- web缓存服务器varnish-4.1.6的部署及配置详解
web缓存服务器varnish-4.1.6的部署及配置详解 1.安装varnish4.1.6安装依赖 yum install -y autoconf automake jemalloc-devel l ...
- Nginx用为缓存服务器
Nginx 缓存组成 共享内存 数据定位 存储键和缓存对象的元数据 磁盘空间: 存储数据 nginx做为反向代理时,能够将来自upstream的响应缓存至本地,并在后续的客户端请求同样内容时直接从 ...
- Nginx 搭建图片缓存服务器-转
文章:https://waver.me/2019/04/11/Nginx-Cache-Server/ 参考: Nginx 配置详解Nginx 简易教程Nginx 配置总结
- Nginx高性能web服务器详解书中概要
一.Nginx功能 1.Nginx服务器以其功能丰富著称于世.它既可以作为HTTP服务器,也可以作为反向代理服务器或者邮件服务器;能够快速响应静态页面(HTML)的请求;支持FastCGI.SSL.V ...
- 使用Nginx的proxy_cache缓存功能取代Squid(转)
Nginx从0.7.48版本开始,支持了类似Squid的缓存功能.这个缓存是把URL及相关组合当作Key,用md5编码哈希后保存在硬盘上,所以它可以支持任意URL链接,同时也支持404/301/302 ...
- nginx的proxy_cache缓存配置
为什么要做web cache,我想大家最主要的是解决流量的压力.随着网站流量的提升,如果只是单台机器既处理静态文件,又处理动态脚本,显然效率很难上升,不能处理日益上涨的流量压力.与此同时某些网站的页面 ...
随机推荐
- VMWare安装Win10虚拟机
这两天突发奇想安了个win10虚拟机,在安装的过程中还遇到了不少麻烦,所以在此与大家分享下. 首先我们用VMWare12来安装,VMWare已经更新到14但是不太稳定,所以为了保险起见还是用12吧. ...
- 360提供的php防注入代码
<?php //Code By Safe3 function customError($errno, $errstr, $errfile, $errline) { echo "< ...
- 游标遍历所有数据库循环执行修改数据库的sql命令
MSSQL数据库服务器上有很多类似的数据库,需要将这些数据库统一修改其中的某些表或者某些命令,那么就会想到用游标来遍历. 先来说思路: 1,首先需要查询出所有的数据库: select [name] f ...
- centos7 忘记mysql root密码办法
1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库. 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的状态下,其他的用户也可以任意地登录和 ...
- 调试和运行matlab代码(源程序)的技巧和教程
转载请标明出处:专注matlab代码下载的网站http://www.downma.com/ 本文主要给大家分享使用matlab编写代码,完成课程设计.毕业设计或者研究项目时,matlab调试程序的技巧 ...
- springMVC使用jsp:include嵌入页面的两种方式
1.静态嵌入子页面 <%@ include file="header.jsp" %> 静态嵌入支持 jsp . html . xml 以及纯文本. 静态嵌入在编译时 ...
- 采用Opserver来监控你的ASP.NET项目系列(二、监控SQL Server与Asp.Net项目)
前言 之前有过2篇关于如何监控ASP.NET core项目的文章,有兴趣的也可以看看. 今天我们主要来介绍一下,如何使用Opserver监控我们的SQL Server 和ASP.NET项目的异常监控 ...
- C++ queue deque
queue queue 队,一种先进先出的数据结构,c++ stl里也叫容器适配器,它是以deque 或list为基础的一种数据结构 queue的相关操作 queue<int deque< ...
- 使用java类破解MyEclipse
今天在网上查资料的时候无意中发现使用java类破解MyEclipse的注册码问题.跟大家分享一下 1.建立JAVA Project,随便命名,只要符合规则就行 2.在刚刚建好的Project右击src ...
- TCP的十一种状态与三次握手分析(有图)
我们知道TCP是面向连接的,我们只知道有连接断开,其实内部还有一些比较复杂的状态.去了解各个状态之间的切换有助于我们更加深入的了解TCP.下面我们就来分析各个状态. 1.如下图示(图源百度)图中显示出 ...