需求:将访问后端apache服务器的静态请求缓存到一个目录下。然后关闭后端的apache服务器,看看是否还能访问之前静态网页!
环境:CentOS6.4(64位)
1、安装nginx和apache
yum install nginx httpd -y
2、配置nginx,配置文件如下:
user nginx;
worker_processes 2;
worker_cpu_affinity 0001 0010;
worker_rlimit_nofile 65535;
error_log /var/log/nginx/error.log info;
pid /var/run/nginx.pid;
events {
worker_connections 65535;
}
http {
include mime.types;
default_type application/octet-stream;
log_format access ' $remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
sendfile on;
keepalive_timeout 0;
##缓存配置
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;
proxy_temp_path /var/nginx/temp_dir; 设置临时目录
proxy_cache_path /var/nginx/cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g; 设置缓存目录,和上面的目录必须在一个分区里面
gzip on;
upstream appserver {
server 192.168.0.1:8080;
}
server {
listen 80 default;
server_name 192.168.0.1;
location /
{
proxy_pass http://appserver;
proxy_cache cache_one;
proxy_cache_methods GET HEAD POST;
proxy_cache_min_uses 1;
proxy_cache_valid 200 302 10m; 200和302状态缓存10分钟,10分钟后失效
proxy_cache_valid 404 1m; 404状态缓存1分钟
proxy_cache_valid any 1m; 其余状态缓存1分钟
access_log /var/log/nginx/192.168.0.1.log;
}
}
}
/etc/init.d/nginx configtest
如果出错应该是/var/nginx目录需要创建。
mkdir /var/nginx
/etc/init.d/nginx start
4、将/etc/httpd/conf/httpd.conf配置文件里面的端口修改为8080
5、写一个静态测试页面
echo "hello" > /var/www/html/index.html
6、测试
访问http://192.168.0.1是否出现hello字样。 ------>正常会出现
查看/var/nginx/cache目录下是否有目录,目录中是否有文件?记录下文件的时间戳 -------有目录,目下有文件
关闭apache,继续刷新网页,是否能正常访问? -------->可以继续访问
对着文件的时间戳,过10分钟再刷新是否出现502 Bad Gateway页面 -------->是
说明成功!