小魔女 发表于 2015-1-14 20:25:07

带来一篇用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/
欢迎大家来到仓酷云论坛!

谁可相欹 发表于 2015-1-16 17:54:26

带来一篇用nginx作为负载平衡办事器和Web缓存办事器

这也正是有别的OS得以存在的原因,每个系统都有其自身的优点。?

蒙在股里 发表于 2015-1-30 11:04:04

其中不乏很多IT精英的心血。我们学透以后更可以做成自己的OS!?

海妖 发表于 2015-2-6 11:08:54

其中不乏很多IT精英的心血。我们学透以后更可以做成自己的OS!?

冷月葬花魂 发表于 2015-2-16 04:14:42

主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统安全,针对不同层次的人的详尽文档,仔细阅读文档后40%问题都可在此解决。

再见西城 发表于 2015-3-4 23:58:12

熟悉系统的基本操作,Linux的图形界面直观,操作简便,多加上机练习就可熟悉操作,在Linux下学习办公软件等常用软件。

透明 发表于 2015-3-11 22:09:53

掌握在Linux系统中安装软件,在安装Linux工具盘后大致日常所需的软件都会有,一般网络提供下载的软件都会有安装说明。

因胸联盟 发表于 2015-3-19 17:03:39

Linux只是个内核!这点很重要,你必须理解这一点。只有一个内核是不能构成一个操作系统的。

深爱那片海 发表于 2015-3-30 10:01:38

硬盘安装及光盘安装,清楚了解安装Linux应注意的有关问题,如安装Linux应在最后一个分区内,至少分二个分区。
页: [1]
查看完整版本: 带来一篇用nginx作为负载平衡办事器和Web缓存办事器