Nginx+proxy_cache高速缓存配置

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处、作者信息和本声明。否则将追究法律责任。 http://wgkgood.blog.51cto.com/1192594/773278

前言* Nginx已经具备Squid所拥有的Web缓存加速功能、清除指定URL缓存的功能。而在性能上,Nginx对多核CPU的利用,胜过Squid不少。另外,在反向代理、负载均衡、健康检查、后端服务器故障转移、Rewrite重写、易用性上,Nginx也比Squid强大得多。这使得一台Nginx可以同时作为“负载均衡服务器”与“Web缓存服务器”来使用。

一、 安装nginx和ngx-purge

 
 
  1. ulimit-SHn65535
  2. yuminstallpcrepcre-devel-y安装pcre
  3. wgethttp://labs.frickle.com/files/ngx_cache_purge-1.4.tar.gz
  4. tarzxvfngx_cache_purge-1.4.tar.gz
  5. wgethttp://nginx.org/download/nginx-1.0.11.tar.gz
  6. tarzxvfnginx-1.0.11.tar.gz
  7. cdnginx-1.0.11/
  8. ./configure--user=www--group=www--add-module=../ngx_cache_purge-1.4--prefix=/usr/local/nginx--with-http_stub_status_module--with-http_ssl_module
  9. make&&makeinstall
  10. cd../

二、 配置nginx.conf文件如下配置文件

 
 
  1. userwwwwww;
  2. worker_processes8;
  3. error_log/data/logs/nginx/error.logcrit;
  4. pid/usr/local/nginx/nginx.pid;
  5. #Specifiesthevalueformaximumfiledescriptorsthatcanbeopenedbythisprocess.
  6. worker_rlimit_nofile65535;
  7. events
  8. {
  9. useepoll;
  10. worker_connections65535;
  11. }
  12. http
  13. {
  14. includemime.types;
  15. default_typeapplication/octet-stream;
  16. charsetutf-8;
  17. server_names_hash_bucket_size128;
  18. client_header_buffer_size32k;
  19. large_client_header_buffers432k;
  20. client_max_body_size300m;
  21. sendfileon;
  22. tcp_nopushon;
  23. keepalive_timeout60;
  24. tcp_nodelayon;
  25. client_body_buffer_size512k;
  26. proxy_connect_timeout5;
  27. proxy_read_timeout60;
  28. proxy_send_timeout5;
  29. proxy_buffer_size16k;
  30. proxy_buffers464k;
  31. proxy_busy_buffers_size128k;
  32. proxy_temp_file_write_size128k;
  33. gzipon;
  34. gzip_min_length1k;
  35. gzip_buffers416k;
  36. gzip_http_version1.1;
  37. gzip_comp_level2;
  38. gzip_typestext/plainapplication/x-javascripttext/cssapplication/xml;
  39. gzip_varyon;
  40. proxy_temp_path/data/proxy_temp_dir;
  41. #设置Web缓存区名称为cache_one,内存缓存空间大小为200MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为30GB。
  42. proxy_cache_path/data/proxy_cache_dirlevels=1:2keys_zone=cache_one:200minactive=1dmax_size=30g;
  43. upstreambackend_server{
  44. server192.168.5.130:8080weight=1max_fails=2fail_timeout=30s;
  45. server192.168.5.131:8080weight=1max_fails=2fail_timeout=30s;
  46. }
  47. server
  48. {
  49. listen80;
  50. server_namewww.abc.com192.168.5.133;
  51. indexindex.htmlindex.htm;
  52. root/data/webapps/www;
  53. location/
  54. {
  55. #如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。
  56. proxy_next_upstreamhttp_502http_504errortimeoutinvalid_header;
  57. proxy_cachecache_one;
  58. #对不同的HTTP状态码设置不同的缓存时间
  59. proxy_cache_valid20030412h;
  60. #以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存内容到二级缓存目录内
  61. proxy_cache_key$host$uri$is_args$args;
  62. proxy_set_headerHost$host;
  63. proxy_set_headerX-Forwarded-For$remote_addr;
  64. proxy_passhttp://backend_server;
  65. expires1d;
  66. }
  67. location~/purge(/.*)
  68. {
  69. #设置只允许指定的IP或IP段输入正确的密码才可以清除URL缓存。
  70. auth_basic“PleaseInsertUserAndPassword”;
  71. auth_basic_user_file/usr/local/nginx/conf/htpasswd;
  72. allow127.0.0.1;
  73. allow192.168.1.0/24;
  74. denyall;
  75. proxy_cache_purgecache_one$host$1$is_args$args;
  76. }
  77. location~.*\.(php|jsp|cgi)?$
  78. {
  79. proxy_set_headerHost$host;
  80. proxy_set_headerX-Forwarded-For$remote_addr;
  81. proxy_passhttp://backend_server;
  82. }
  83. log_formataccess‘$remote_addr–$remote_user[$time_local]“$request”‘
  84. ‘$status$body_bytes_sent“$http_referer”‘
  85. ‘”$http_user_agent”$http_x_forwarded_for’;
  86. access_log/data/logs/nginx/access.logaccess;
  87. }
  88. }

三、 启动nginx即可

 
 
  1. /usr/local/nginx/sbin/nginx即可
  2. 然后配置好resin端口设置为8080
  3. 如果需要刷新缓存的url地址为:
  4. http://192.168.5.133/purge/

如下图:
http://img1.51cto.com/group_attachment/201112131323751485261.png

本文出自 “烟雨楼台” 博客,请务必保留此出处http://wgkgood.blog.51cto.com/1192594/773278

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值