仓酷云
标题:
带来一篇用nginx作为负载平衡办事器和Web缓存办事器
[打印本页]
作者:
小魔女
时间:
2015-1-14 20:25
标题:
带来一篇用nginx作为负载平衡办事器和Web缓存办事器
欢迎大家来到仓酷云论坛!
Nginx的Web缓存办事次要由proxy_cache相干指令集和fastcgi_cache相干指令集组成。最新的Nginx0.8.32版本,proxy_cache和fastcgi_cache已对照完美,完整能够代替Squid,同时作为负载平衡办事器和Web缓存办事器来利用。
Nginx从0.7.48版本入手下手,撑持了相似Squid的缓存功效。这个缓存是把URL及相干组合看成Key,用md5编码哈希后保留在硬盘上,以是它能够撑持恣意URL链接,同时也撑持404/301/302如许的非200形态码。固然今朝官方的NginxWeb缓存办事只能为指定URL或形态码设置过时工夫,不撑持相似Squid的PURGE指令,手动扫除指定缓存页面,可是,经由过程一个第三方的Nginx模块,能够扫除指定URL的缓存。
Nginx的Web缓存办事次要由proxy_cache相干指令集和fastcgi_cache相干指令集组成,前者用于反向代办署理时,对后端内容源办事器举行缓存,后者次要用于对FastCGI的静态步伐举行缓存。二者的功效基础上一样。
最新的Nginx0.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下的编译装置:
ulimit-SHn65535
wgetftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.00.tar.gz
tarzxvfpcre-8.00.tar.gz
cdpcre-8.00/
./configure
make&&makeinstall
cd../
wgethttp://labs.frickle.com/files/ngx_cache_purge-1.0.tar.gz
tarzxvfngx_cache_purge-1.0.tar.gz
wgethttp://nginx.org/download/nginx-0.8.32.tar.gz
tarzxvfnginx-0.8.32.tar.gz
cdnginx-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&&makeinstall
cd../
2、/usr/local/webserver/nginx/conf/nginx.conf设置文件内容以下:
userwwwwww;
worker_processes8;
error_log/usr/local/webserver/nginx/logs/nginx_error.logcrit;
pid/usr/local/webserver/nginx/nginx.pid;
#Specifiesthevalueformaximumfiledescriptorsthatcanbeopenedbythisprocess.
worker_rlimit_nofile65535;
events
{
useepoll;
worker_connections65535;
}
http
{
includemime.types;
default_typeapplication/octet-stream;
charsetutf-8;
server_names_hash_bucket_size128;
client_header_buffer_size32k;
large_client_header_buffers432k;
client_max_body_size300m;
sendfileon;
tcp_nopushon;
keepalive_timeout60;
tcp_nodelayon;
client_body_buffer_size512k;
proxy_connect_timeout5;
proxy_read_timeout60;
proxy_send_timeout5;
proxy_buffer_size16k;
proxy_buffers464k;
proxy_busy_buffers_size128k;
proxy_temp_file_write_size128k;
gzipon;
gzip_min_length1k;
gzip_buffers416k;
gzip_http_version1.1;
gzip_comp_level2;
gzip_typestext/plainapplication/x-javascripttext/cssapplication/xml;
gzip_varyon;
#注: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_dirlevels=1:2keys_zone=cache_one:200minactive=1dmax_size=30g;
upstreambackend_server{
server192.168.8.43:80weight=1max_fails=2fail_timeout=30s;
server192.168.8.44:80weight=1max_fails=2fail_timeout=30s;
server192.168.8.45:80weight=1max_fails=2fail_timeout=30s;
}
server
{
listen80;
server_namewww.yourdomain.com192.168.8.42;
indexindex.htmlindex.htm;
root/data0/htdocs/www;
location/
{
#假如后真个办事器前往502、504、实行超时等毛病,主动将哀求转发到upstream负载平衡池中的另外一台办事器,完成妨碍转移。
proxy_next_upstreamhttp_502http_504errortimeoutinvalid_header;
proxy_cachecache_one;
#对分歧的HTTP形态码设置分歧的缓存工夫
proxy_cache_valid20030412h;
#以域名、URI、参数组分解Web缓存的Key值,Nginx依据Key值哈希,存储缓存内容到二级缓存目次内
proxy_cache_key$host$uri$is_args$args;
proxy_set_headerHost$host;
proxy_set_headerX-Forwarded-For$remote_addr;
proxy_passhttp://backend_server;
expires1d;
}
#用于扫除缓存,假定一个URL为http://192.168.8.42/test.txt,经由过程会见http://192.168.8.42/purge/test.txt就能够扫除该URL的缓存。
location~/purge(/.*)
{
#设置只同意指定的IP或IP段才能够扫除URL缓存。
allow127.0.0.1;
allow192.168.0.0/16;
denyall;
proxy_cache_purgecache_one$host$1$is_args$args;
}
#扩大名以.php、.jsp、.cgi开头的静态使用步伐不缓存。
location~.*.(php|jsp|cgi)?$
{
proxy_set_headerHost$host;
proxy_set_headerX-Forwarded-For$remote_addr;
proxy_passhttp://backend_server;
}
access_logoff;
}
}
3、启动Nginx:
/usr/local/webserver/nginx/sbin/nginx
4、扫除指定的URL缓存示例:
登录/注册后可看大图
1633590.jpg
(66.44 KB, 下载次数: 10)
下载附件
保存到相册
带来一篇用nginx作为负载平衡办事器和Web缓存办事器
2015-1-14 20:25 上传
原文地点:http://blog.s135.com/nginx_cache/
欢迎大家来到仓酷云论坛!
作者:
谁可相欹
时间:
2015-1-16 17:54
标题:
带来一篇用nginx作为负载平衡办事器和Web缓存办事器
这也正是有别的OS得以存在的原因,每个系统都有其自身的优点。?
作者:
蒙在股里
时间:
2015-1-30 11:04
其中不乏很多IT精英的心血。我们学透以后更可以做成自己的OS!?
作者:
海妖
时间:
2015-2-6 11:08
其中不乏很多IT精英的心血。我们学透以后更可以做成自己的OS!?
作者:
冷月葬花魂
时间:
2015-2-16 04:14
主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统安全,针对不同层次的人的详尽文档,仔细阅读文档后40%问题都可在此解决。
作者:
再见西城
时间:
2015-3-4 23:58
熟悉系统的基本操作,Linux的图形界面直观,操作简便,多加上机练习就可熟悉操作,在Linux下学习办公软件等常用软件。
作者:
透明
时间:
2015-3-11 22:09
掌握在Linux系统中安装软件,在安装Linux工具盘后大致日常所需的软件都会有,一般网络提供下载的软件都会有安装说明。
作者:
因胸联盟
时间:
2015-3-19 17:03
Linux只是个内核!这点很重要,你必须理解这一点。只有一个内核是不能构成一个操作系统的。
作者:
深爱那片海
时间:
2015-3-30 10:01
硬盘安装及光盘安装,清楚了解安装Linux应注意的有关问题,如安装Linux应在最后一个分区内,至少分二个分区。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2