仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1711|回复: 8
打印 上一主题 下一主题

[CentOS(社区)] 带来一篇用nginx作为负载平衡办事器和Web缓存办事器

[复制链接]
小魔女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:25:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
欢迎大家来到仓酷云论坛!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!?
冷月葬花魂 该用户已被删除
5#
发表于 2015-2-16 04:14:42 | 只看该作者
主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统安全,针对不同层次的人的详尽文档,仔细阅读文档后40%问题都可在此解决。
再见西城 该用户已被删除
6#
发表于 2015-3-4 23:58:12 | 只看该作者
熟悉系统的基本操作,Linux的图形界面直观,操作简便,多加上机练习就可熟悉操作,在Linux下学习办公软件等常用软件。
透明 该用户已被删除
7#
发表于 2015-3-11 22:09:53 | 只看该作者
掌握在Linux系统中安装软件,在安装Linux工具盘后大致日常所需的软件都会有,一般网络提供下载的软件都会有安装说明。
因胸联盟 该用户已被删除
8#
发表于 2015-3-19 17:03:39 | 只看该作者
Linux只是个内核!这点很重要,你必须理解这一点。只有一个内核是不能构成一个操作系统的。
深爱那片海 该用户已被删除
9#
发表于 2015-3-30 10:01:38 | 只看该作者
硬盘安装及光盘安装,清楚了解安装Linux应注意的有关问题,如安装Linux应在最后一个分区内,至少分二个分区。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 23:21

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表