带来一篇用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缓存示例:
原文地点:http://blog.s135.com/nginx_cache/
欢迎大家来到仓酷云论坛!
带来一篇用nginx作为负载平衡办事器和Web缓存办事器
这也正是有别的OS得以存在的原因,每个系统都有其自身的优点。? 其中不乏很多IT精英的心血。我们学透以后更可以做成自己的OS!? 其中不乏很多IT精英的心血。我们学透以后更可以做成自己的OS!? 主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统安全,针对不同层次的人的详尽文档,仔细阅读文档后40%问题都可在此解决。 熟悉系统的基本操作,Linux的图形界面直观,操作简便,多加上机练习就可熟悉操作,在Linux下学习办公软件等常用软件。 掌握在Linux系统中安装软件,在安装Linux工具盘后大致日常所需的软件都会有,一般网络提供下载的软件都会有安装说明。 Linux只是个内核!这点很重要,你必须理解这一点。只有一个内核是不能构成一个操作系统的。 硬盘安装及光盘安装,清楚了解安装Linux应注意的有关问题,如安装Linux应在最后一个分区内,至少分二个分区。
页:
[1]