- 浏览: 177017 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
得牛哄哄:
楼主,我想问题下,我服务器已经搭建好了,验证可以服务器登陆成功 ...
CAS SSO 例子 笔记 (原创-梁健) -
得牛哄哄:
为什么下不了?
CAS SSO 例子 笔记 (原创-梁健) -
aa00aa00:
这个我已经配置成功了,看的视频,挺好的,其实用CAS确实挺方便 ...
CAS SSO 例子 笔记 (原创-梁健) -
ningguiixn:
单例写的不对哦亲
Singleton 单例模式很多种写法 -
liangjian103:
hesy_007 写道Nginx for windows在生产 ...
Nginx负载均衡Tomcat简单配置
[文章作者:张宴 本文版本:v1.2 最后修改:2009.01.12 转载请注明原文链接:http://blog.s135.com/nginx_cache/
]
Nginx从0.7.48版本开始,支持了类似Squid的缓存功能。这个缓存是把URL及相关组合当作Key,用md5编码哈希后保存在硬盘上,所以
它可以支持任意URL链接,同时也支持404/301/302这样的非200状态码。虽然目前官方的Nginx
Web缓存服务只能为指定URL或状态码设置过期时间,不支持类似Squid的PURGE指令,手动清除指定缓存页面,但是,通过一个第三方的Nginx
模块,可以清除指定URL的缓存。
Nginx的Web缓存服务主要由proxy_cache相关指令集和fastcgi_cache相关指令集构成,前者用于反向代理时,对后端内容源服务器进行缓存,后者主要用于对FastCGI的动态程序进行缓存。两者的功能基本上一样。
最新的Nginx
0.8.32版本,proxy_cache和fastcgi_cache已经比较完善,加上第三方的ngx_cache_purge模块(用于清除指定
URL的缓存),已经可以完全取代Squid。我们已经在生产环境使用了 Nginx 的 proxy_cache
缓存功能超过两个月,十分稳定,速度不逊于 Squid。
在功能上,Nginx已经具备Squid所拥有的Web缓存加速功能、清除
指定URL缓存的功能。而在性能上,Nginx对多核CPU的利用,胜过Squid不少。另外,在反向代理、负载均衡、健康检查、后端服务器故障转移、
Rewrite重写、易用性上,Nginx也比Squid强大得多。这使得一台Nginx可以同时作为“负载均衡服务器”与“Web缓存服务器”来使用。
1、Nginx 负载均衡与缓存服务器在 Linux 下的编译安装:
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.00.tar.gz
tar zxvf pcre-8.00.tar.gz
cd pcre-8.00/
./configure
make && make install
cd ../
wget http://labs.frickle.com/files/ngx_cache_purge-1.0.tar.gz
tar zxvf ngx_cache_purge-1.0.tar.gz
wget http://nginx.org/download/nginx-0.8.32.tar.gz
tar zxvf nginx-0.8.32.tar.gz
cd nginx-0.8.32/
./configure --user=www --group=www --add-module=../ngx_cache_purge-1.0 --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
cd ../
2、/usr/local/webserver/nginx/conf/nginx.conf 配置文件内容如下:
worker_processes 8;
error_log /usr/local/webserver/nginx/logs/nginx_error.log crit;
pid /usr/local/webserver/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;
events
{
use epoll;
worker_connections 65535;
}
http
{
include mime.types;
default_type application/octet-stream;
charset utf-8;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 300m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
client_body_buffer_size 512k;
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;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
#注:proxy_temp_path和proxy_cache_path指定的路径必须在同一分区
proxy_temp_path /data0/proxy_temp_dir;
#设置Web缓存区名称为cache_one,内存缓存空间大小为200MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为30GB。
proxy_cache_path /data0/proxy_cache_dir levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;
upstream backend_server {
server 192.168.8.43:80 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.8.44:80 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.8.45:80 weight=1 max_fails=2 fail_timeout=30s;
}
server
{
listen 80;
server_name www.yourdomain.com 192.168.8.42;
index index.html index.htm;
root /data0/htdocs/www;
location /
{
#如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_cache cache_one;
#对不同的HTTP状态码设置不同的缓存时间
proxy_cache_valid 200 304 12h;
#以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存内容到二级缓存目录内
proxy_cache_key $host$uri$is_args$args;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://backend_server;
expires 1d;
}
#用于清除缓存,假设一个URL为http://192.168.8.42/test.txt,通过访问http://192.168.8.42/purge/test.txt就可以清除该URL的缓存。
location ~ /purge(/.*)
{
#设置只允许指定的IP或IP段才可以清除URL缓存。
allow 127.0.0.1;
allow 192.168.0.0/16;
deny all;
proxy_cache_purge cache_one $host$1$is_args$args;
}
#扩展名以.php、.jsp、.cgi结尾的动态应用程序不缓存。
location ~ .*\.(php|jsp|cgi)?$
{
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://backend_server;
}
access_log off;
}
}
3、启动 Nginx:
发表评论
-
Singleton 单例模式很多种写法
2012-09-13 11:42 1212以前我就知道单例模式的两种写法,如今经发现那两种是 ... -
cookies的详细使用说明
2012-09-07 21:14 1284一.什么是cookies? 大家都知道,浏览器与WEB ... -
java5线程框架Executor 排程定时功能
2012-09-06 10:56 10291,带有排程功能的例子 ... -
hessian教程
2012-09-01 12:29 1699转载 http://www.buildapp.net/java ... -
Nginx负载均衡Tomcat简单配置
2012-08-02 15:30 1471很久没练习负载均衡的配置了,真的被遗忘了。生活的环境总在 ... -
Sitemesh例子分享
2012-04-12 14:51 2483sitemesh是表现层的技术,它将公用的部分抽出来了,就不用 ... -
导出excel 的问题 防止自动转科学计数法格式
2011-11-15 13:37 2646关于eXtremeComponents 导出excel 的问题 ... -
JAVA System.getProperty()参数大全
2011-10-08 13:00 1168JAVA System.getProperty()参数大全 ... -
Java通过XML Schema校验XML
2011-10-08 10:37 1177Java通过XML Schema校验XML XML的校 ... -
C语言中拆分人民币面值的题
2011-09-17 16:16 1502目前人民币共有以下几种面值(不包括角和分):1,2,5,10, ... -
用FindBugs分析代码漏洞
2011-08-31 09:00 1654hyddd原创,转载请说明! FindBugs是 ... -
表格一对多,动态显示
2011-08-18 09:56 1129今天一大早就看到一个朋友向我求助,如何实现那样一种显示方式,我 ... -
Java Map遍历的各种方法
2011-08-18 09:44 1107//最常规的一种遍历方法,最常规就是最常用的,虽然不复杂,但很 ... -
Apache与Tomcat的安装和桥接
2011-08-05 18:03 11451、首先安装Apache:./co ... -
Quartz 定时任务web使用
2011-08-05 17:58 1535首先创建一个Web项目,将quartz-1.6.0.jar,以 ... -
Hadoop学习笔记一
2011-07-29 16:07 973这里先大致介绍一下Hadoop. 本文大部分内容 ... -
CAS SSO 例子 笔记 (原创-梁健)
2011-07-20 17:32 8252先说写心情一下: 去年在第一家公司做的那个项目使用是 ... -
ant命令总结
2011-07-08 11:18 9261 Ant是什么? Apache Ant 是一个基于 Ja ... -
Java二维数组实现简单Map
2011-06-22 17:49 4767这些天频繁的在使用二维数组,让我觉得二维数组要比Map更灵活多 ... -
抓取防爬虫的网站信息(梁健-原创)
2011-06-21 11:11 1924有的网站限制网络爬虫的抓取,例如javaeye。会出现 ...
相关推荐
首先,从测试环境来看,本次测试所使用的Squid、Ngx_cache(也就是Varnish)、Nginx_cache均运行在具有单硬盘资源的服务器上,并为缓存分配了180G的存储空间。这意味着测试结果更侧重于考察三者在单盘存储条件下的...
启用Nginx的缓存功能,需要配置 `proxy_cache_path` 和 `proxy_cache`。以下是一个简单的配置示例: ```nginx proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m; ...
Nginx 自 0.7.48 版本起开始支持类似 Squid 的缓存功能,能对任意 URL 链接进行缓存,包括非 200 状态码。缓存机制由 `proxy_cache` 和 `fastcgi_cache` 指令集实现,分别对应反向代理和FastCGI动态程序。通过第三方...
- 使用内存缓存:通过`proxy_cache_use_stale`和`proxy_cache_lock`等指令,让Nginx优先使用内存中的缓存,减少磁盘IO操作。 - 监控和清理:定期检查并清理无用的缓存文件,可以编写脚本或利用Nginx的`proxy_cache_...
Nginx 0.8.32版本,proxy_cache和fastcgi_cache已经比较完善,加上第三方的ngx_cache_purge模块(用于清除指定URL的缓存),已经可以完全取代Squid。 在功能上,Nginx已经具备Squid所拥有的Web缓
由于国内网站备案比较麻烦,所以笔者便把网站放到... 目前用于Web的缓存系统很多,包括squid、varnish、Nginx自带的proxy_cache、FastCGI中的fastcgi_cache、APC、Xcache等。 像squid、varnish、Nginx自带的proxy
Linux Squid Proxy代理是Linux操作系统中广泛使用的网络代理服务器,它允许系统作为缓存代理,提高网络访问速度,节省带宽,并提供一定的网络访问控制功能。以下是对Squid代理服务的详细说明: 1. **安装Squid** ...
6. **缓存技术**:例如使用mod_cache和mod_disk_cache模块来缓存静态内容,减少服务器负载。更高级的解决方案如Varnish或 Squid可以作为反向代理,进一步提高缓存效率。 7. **日志管理和分析**:使用logrotate管理...
### 开源基础架构和集群最佳实践 ...cache_dir ufs /var/spool/squid 10000 16 256 ``` ##### 2、Varnish - **安装**: 使用包管理器安装Varnish。 - **配置**: 编辑配置文件`/etc/varnish/default.vcl`。 ...
9. 基于反向代理的Web缓存:Nginx、SQUID和Apache的mod_proxy及mod_cache等代理服务器可以缓存HTTP响应,减轻后端服务器的压力。 10. DNS轮询:DNS服务器如BIND可以实现负载均衡,通过DNS解析将用户请求分散到多个...
10. **基于反向代理的Web缓存**:如Nginx、Squid和Apache的mod_proxy及mod_cache,它们在服务器端缓存HTTP响应,减少服务器直接处理请求的压力。 11. **DNS轮询**:通过BIND等DNS服务器软件实现,将同一内容分发到...
9. 基于反向代理的Web缓存:如Nginx、SQUID和Apache的mod_proxy及mod_cache模块,它们作为服务器之间的中间层,负责缓存和分发请求,减轻服务器压力。 10. DNS轮询:DNS轮询是一种负载均衡策略,通过配置DNS服务器...
Proxy服务器用于代理网络访问,通常使用 Squid。配置包括定义缓存策略、访问控制列表、代理端口等。在`squid.conf`中,可以通过`http_access`规则控制访问权限,`cache_dir`定义缓存位置,`visible_hostname`设置...