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,我想大家最主要的是解决流量的压力.随着网站流量的提升,如果只是单台机器既处理静态文件,又处理动态脚本,显然效率很难上升,不能处理日益上涨的流量压力.与此同时某些网站的页面 ...
随机推荐
- 熵(Entropy),交叉熵(Cross-Entropy),KL-松散度(KL Divergence)
1.介绍: 当我们开发一个分类模型的时候,我们的目标是把输入映射到预测的概率上,当我们训练模型的时候就不停地调整参数使得我们预测出来的概率和真是的概率更加接近. 这篇文章我们关注在我们的模型假设这些类 ...
- gcc & gdb & make 定义与区别
GCC 通常所说的GCC是GUN Compiler Collection的简称,除了编译程序之外,它还含其他相关工具,所以它能把易于人类使用的高级语言编写的源代码构建成计算机能够直接执行的二进制代码. ...
- ##3.Keystone 验证服务--openstack
##3.Keystone 验证服务 openstack pike 安装 目录汇总 http://www.cnblogs.com/elvi/p/7613861.html #SQL上创建数据库并授权 #K ...
- CCF-201409-2-画图
问题描述 试题编号: 201409-2 试题名称: 画图 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩 ...
- 基本MarkDown语法
引言 字符串作为一种常见的数据类型,在日常中我们面临各式各样的字符串处理问题,那么,这就要求我们必须掌握一些常用的字符串处理函数.本文尽量囊括常用的字符串处理函数,此文也作为个人的小总结. Pytho ...
- Haproxy配置日志显示
安装完haproxy后,日志默认是记录在系统日志下的.为了便于排错以及查看日志,我们需要将haproxy日志剥离出来. 在配置前,我们先来了解下日志的level: local0-local7 16-2 ...
- SQLMap简单尝试
第一次完成了一个注入呢,虽然是恬不知耻的用sqlmap跑出来的 简单介绍注入时后台的数据等级,有助于后面的理解 ①可以类比成一个装着excel文件的文件夹,每一个excel文件就相当于一个数据库 ②库 ...
- Power Designer如何批量改动数据类型
最近做项目的时候须要将OOM转换为PDM.在OOM中转换为PDM时,全部string的类型的属性都默认变为varchar(254),这可不是我们须要的类型,那么.如此多的类.如此多的属性.难道一个一个 ...
- C language 模拟 win的经典游戏——扫雷
让我们在terminal下愉快的...扫雷 昨天跟奇葩霖聊起"雷区"这个敏感词汇,然后非常荣幸的... 应该轰炸不到我.. . 后来百无聊赖的去玩了把扫雷.然后发现我之前都是乱扫的 ...
- java.lang.IllegalStateException: attempt to re-open an already-closed object
attempt to re-open an already-closed object 字面理解,试图再次打开已经关闭的对象.这是我在操作sqlited的时候出现的错误, 我在一个activity里面 ...