原文地址:http://www.server110.com/nginx/201310/2414.html
nginx的反代理功能一直很强大,无奈过去没有很好的cache机制,在0.7.44版里新加入的proxy cache功能后,发展至今,这个功能已经很完善和稳定,感觉有种替代传统cache如squid的趋势啊。
配置一下,很简单,配合上nginx的规则过滤真的很强大啊,简单http部分配置如下:
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
#### proxy_cache_path 指令指定缓存的路径和一些其他参数,缓存的数据存储在文件中。缓存的文件名和key为代理URL的MD5 码。levels参数指定缓存的子目录数,所有活动的key和元数据存储在共享的内存区域中,这个区域用keys_zone参数指定,keys_zone指定缓存的名字和共享内存大小,如果在inactive参数指定的时间内缓存的数据没有被请求则被删除,默认inactive为10分钟。cache manager进程控制磁盘的缓存大小,在max_size参数中定义,超过其大小后最少使用数据将被删除。
proxy_cache_path /www/ng_cache levels=1:2 keys_zone=tmp_cache:1000m inactive=1d max_size=10000m;
upstream backend {
server 10.0.8.1:80
}
server {
listen 80;
server_name localhost;
#### proxy_temp_path 必须和 proxy_cache_path 在同一分区
proxy_temp_path /www/ng_tmp;
location / {
proxy_pass http://backend;
#### proxy_cache设置一个缓存区域的名称,一个相同的区域可以在不同的地方使用。在0.7.48后,缓存遵循后端的Cache-Control, Expires以及其他等。缓存依赖代理的缓冲区,如果proxy_buffers设置为off,将不会生效。
proxy_cache tmp_cache;
#### proxy_cache_key 指定了包含在缓存中的缓存关键字(默认情况下服务器的主机名并没有包含到缓存关键字中)
proxy_cache_key $host$uri$is_args$args;
#### 只对代码为200, 301和302的应答进行缓存10分钟
proxy_cache_valid 10m;
}
#### purge缓存的设置
location ~ /purge(/.*) {
allow 127.0.0.1;
deny all;
#### proxy_cache_purge 设置要purge的缓存名字和cache_key(需和proxy_cache_key对应,不然会purge成404,要使用purge,需在编译nginx的时候加上第三方的cache_purge模块)
proxy_cache_purge tmp_cache $host$1$is_args$args;
}
}
}
但proxy_cache好像没办法跟squid样的在多个不同分区同时设置缓存目录和文件,不过nginx可以通过nginx的做法,我是先多设置几个proxy_cache_path指定不同分区取不同名字,然后起多个server监听不同端口缓存到不同的proxy_cache_path,再通过upstream的url_hash或者其他方式反代理过去,测试还是很好使的~~
分享到:
相关推荐
**NGINX反向代理与缓存详解** NGINX是一款高性能的HTTP和反向代理服务器,常用于负载均衡和内容缓存,以提高网站的响应速度和整体性能。在本文中,我们将深入探讨如何利用NGINX进行反向代理和缓存配置,特别是对于...
6. **缓存过期策略**:使用`proxy_cache_valid`设置不同响应状态码对应的缓存有效期,比如对于200状态码的响应,可以设置较长时间的缓存。 **三、注意事项** 1. **安全性**:使用Nginx作为反向代理时,需要注意安全...
作为一个反向代理服务器,Nginx 能够在客户端和后端应用服务器之间起到中介作用,从而实现负载均衡、缓存、安全过滤等多种功能。以下我们将深入探讨Nginx的反向代理特性和实际应用。 1. **反向代理基本原理** 反向...
### Nginx_反向代理、负载均衡、页面缓存、URL重写及读写分离详解 #### 一、前言 Nginx是一款广泛使用的高性能HTTP和反向代理Web服务器,也是常用的邮件代理服务器。它以其高稳定性、丰富的功能集、简单的配置方式...
### 一、Nginx反向代理配置 反向代理是Nginx的核心功能之一,它充当服务器和客户端之间的中介。当用户请求到达Nginx时,Nginx会根据配置将请求转发到后端服务器处理,然后将响应返回给用户。以下是一个基本的反向...
配置Nginx的proxy_cache功能时需要注意的是,根据后端服务器内容更新的频率和业务需求,合理地设置缓存时间策略。如果后端内容经常变动,可以适当减小inactive时间,确保用户能及时获取到更新的内容。如果后端内容...
总结来说,本文可能会涵盖Nginx的proxy_cache缓存机制,CDN的基本原理,以及如何通过配置nginx.conf文件来实现这两项功能。同时,可能会提及源码分析和优化策略,帮助读者更好地理解和利用Nginx提升网站性能。
当Nginx根据用户代理(浏览器类型)发送不同版本的响应时,会使用Vary头来告知缓存服务器和中间代理如何处理请求。例如,如果Nginx对不同的浏览器使用了不同的gzip设置,Vary头应包含`Accept-Encoding`,这样缓存...
"nginx反向代理相关文件.rar"这个压缩包很可能包含了一些配置文件、文档或者示例,用于帮助我们理解和设置Nginx的反向代理功能。下面将详细阐述Nginx反向代理的相关知识点。 首先,了解什么是反向代理。在Web服务...
2. **Nginx反向代理配置** 在Nginx中,通过配置`http`、`server`和`location`等块来实现反向代理。例如,你可以创建一个`server`块监听80端口,将所有请求转发到8080端口上的后端应用服务器: ```nginx server { ...
Nginx作为缓存服务器,可以将代理服务器转发的请求结果缓存到磁盘上,当相同的请求再次出现时,直接从缓存中加载结果,而不需要重新连接到后端服务器。这样可以显著减少响应时间,提高系统性能。Nginx缓存服务器的...
这里,`proxy_cache_path` 指定了缓存存储的路径,`levels` 参数定义了缓存目录的层级,`keys_zone` 设置了一个名为 `cache_one` 的内存缓存区域,大小为 200MB,`inactive` 参数指定了1天内未被访问的缓存将被自动...
在IT行业中,Nginx是一款广泛应用的高性能HTTP和反向代理服务器,它的高效性和灵活性使得在配置代理转发方面具有显著优势。Nginx通过代理转发功能可以将客户端的请求转发到不同的后端服务,实现负载均衡、服务隔离、...
在Nginx配置中,通过`location`指令和`proxy_pass`属性设置反向代理。例如,以下配置将所有/luban/开头的请求转发到本地8010端口: ``` location /luban/ { proxy_pass http://127.0.0.1:8010; } ``` 2. 负载均衡...
在本文中,我们将探讨如何使用Nginx配置srcache_nginx模块与Redis来建立一个高效的缓存系统。首先,让我们了解这两个关键组件的作用。 Nginx是一款高性能的HTTP和反向代理服务器,它以其轻量级、稳定性和高并发处理...
通过这样的配置,当需要更新特定资源时,可以通过发送一个请求到`/purge`接口,Nginx Cache Purge插件会根据请求的URI清除相应的缓存项,确保用户可以立即获取到更新的内容。 总的来说,Nginx Cache Purge是Nginx...
标题 "nginx TOMCAT 文件下载 上传 进度条 缓存" 涉及到的是在Web服务器场景中,如何利用Nginx和Tomcat处理文件的下载、上传以及实现进度条显示和缓存优化的技术点。下面将详细介绍这些内容。 1. **Nginx与Tomcat的...