参考:http://www.cnblogs.com/GXLo/articles/5169098.html
一.准备
1.一台后端服务器,已安装Apache服务器,/var/www/html下已放置了一张图片head.jpg,IP为192.168.1.105
2.一台服务器,用来安装nginx,当做缓存服务器,IP为192.168.1.109
二、 Nginx(Ngx_cache)安装:
首先下载Nginx缓存模块,ngx_cache_purge相应版本,这里下载nginx-1.4版本,不同版本对应不同的Nginx版本,安装的时候要留心。
ulimit -SHn 65535 yum install pcre pcre-devel -y wget http://nginx.org/download/nginx-1.0.11.tar.gz http://labs.frickle.com/files/ngx_cache_purge-1.4.tar.gz tarz xvf ngx_cache_purge-1.4.tar.gz tarz xvf nginx-1.0.11.tar.gz useradd www cd nginx-1.0.11/ ./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 make && make install
配置文件内容nginx.conf:
user www www; worker_processes 8; error_log /usr/local/nginx/logs/nginx_error.log crit; pid /usr/local/nginx/nginx.pid; worker_rlimit_nofile 65535; events { use epoll; worker_connections 65535; } http { include mime.types; default_type application/octet-stream; charset utf-8; server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k; client_max_body_size 300m; sendfile on; tcp_nopush on; keepalive_timeout 60; tcp_nodelay on; client_body_buffer_size 512k; proxy_connect_timeout 5; proxy_read_timeout 60; proxy_send_timeout 5; proxy_buffer_size 16k; proxy_buffers 4 64k; proxy_busy_buffers_size 128k; proxy_temp_file_write_size 128k; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; #这里设置缓存目录,为/data/proxy_temp,/data/proxy_cache proxy_temp_path /data/proxy_temp; proxy_cache_path /data/proxy_cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=1g; upstream backend_server { server 192.168.1.105:80; } server { listen 80; server_name 127.0.0.1; location / { proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://backend_server; } location ~ .*\.(gif|jpg|jpeg|bmp|png|js|css|swf)?$ //缓存文件类型 { proxy_cache cache_one; proxy_cache_valid 200 304 12h; proxy_cache_valid 301 302 1m; proxy_cache_valid any 1m; proxy_cache_key $host$uri$is_args$args; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://backend_server; } location ~ /purge(/.*) { allow 127.0.0.1; deny all; proxy_cache_purge cache_one $host$1$is_args$args; } access_log off; } }
###########################################################################################
说明
Nginx缓存服务器的配置主要通过proxy_cache相关命令来实现。
proxy_cache_path /backup/proxy_cache_dir levels=1:2 keys_zone=cache_one:4096m inactive=1d max_size=3g;
- poxy_cache_path:用于设置缓存的目录,后面跟缓存路径。最好将缓存目录放在一个独立的硬盘上。
- levels=1:2:levels用来设置目录深度,这里是两层目录深度,第一层是一个字符,第二层是两个字符。
- keys_zne:用来设置web缓存区名称,这里的cache_one后面的4096,表示内存缓存空间大小为4GB
- inactive:表示自动清除缓存文件的时间,这里的“d”表示1天没有被访问的内容自动清除,还可以使用分钟和小时计数,5m,5h。
- max_size:表示硬盘缓存空间可使用的最大值,默认情况下经访问的文件常将被放到内存中进行缓存,而在内存缓存空间不足时,Nginx会将不经常访问的数据从内存写到磁盘。
proxy_temp_path /backup/proxy_temp_dir;
- 用于指定临时缓存文件的存储路径,这里需要注意的是,两个存放缓存文件的目录必须在同一磁盘分区。
三、实验验证
前面提到,已经将一个图片文件head.jpg放置在192.168.1.105的后端服务器的/var/www/html下,启动Apache,Nginx配置好之后也需要启动;
1.在此情况下,先访问http://192.168.1.109/head.jpg,能访问到,此时apache和nginx均启动;
2.关闭后台apache,nginx保持开启,访问http://192.168.1.109/head.jpg,可见的情况是head.jpg还能访问到;去/data/proxy_temp和/data/proxy_cache下能发现生成的缓存文件;
本文出自 “渐行渐远” 博客,请务必保留此出处http://825536458.blog.51cto.com/4417836/1890157
原文:http://825536458.blog.51cto.com/4417836/1890157