nginx同时作为负载均衡Web缓存服务器.docx_第1页
nginx同时作为负载均衡Web缓存服务器.docx_第2页
nginx同时作为负载均衡Web缓存服务器.docx_第3页
nginx同时作为负载均衡Web缓存服务器.docx_第4页
nginx同时作为负载均衡Web缓存服务器.docx_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Nginx的Web缓存服务主要由 proxy_cache相关指令集和fastcgi_cache相关指令集 构成。最新的Nginx 0.8.32版本,proxy_cache和fastcgi_cache已经比较完善,完全可以取代Squid,同时作为负载均衡服务器和Web缓存服务 器来使用。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 下的编译安装:1ulimit-SHn655352wgetftp:/ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.00.tar.gz3tarzxvfpcre-8.00.tar.gz4cdpcre-8.00/5./configure6make&makeinstall7cd./89wget/files/ngx_cache_purge-1.0.tar.gz10tarzxvfngx_cache_purge-1.0.tar.gz1112wget/download/nginx-0.8.32.tar.gz13tarzxvfnginx-0.8.32.tar.gz14cdnginx-0.8.32/15./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_module16make&makeinstall17cd./ 192、/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;eventsuseepoll;worker_connections65535;httpincludemime.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_serverserver3:80weight=1max_fails=2fail_timeout=30s;server4:80weight=1max_fails=2fail_timeout=30s;server5:80weight=1max_fails=2fail_timeout=30s;serverlisten80;server_2;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为2/test.txt,通过访问2/purge/test.txt就可以清除该URL的缓存。location/purge(/.*)#设置只允许指定的IP或IP段才可以清除URL缓存。allow;allow/16;denyall;proxy_cache_purgecache_one$host$1$is_args$args;#扩展名以.php、.jsp、.cgi结尾的动态应用程序不缓存。location.*.(php|jsp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论