#user  nobody;

worker_processes  8;


#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;


#pid        logs/nginx.pid;


#Specifies the value for maximum file descriptors that can be opened by thisprocess.

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/plainapplication/x-javascript text/css application/xml;

gzip_vary on;

#注:proxy_temp_path和proxy_cache_path指定的路径必须在同一分区

proxy_temp_path   /data02/proxy_temp_dir;

#设置Web缓存区名称为cache_one,内存缓存空间大小为200MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为5GB。

proxy_cache_path  /data02/proxy_cache_dir  levels=1:2   keys_zone=cache_one:200m inactive=1d max_size=5g;


      log_format cache '***$time_local '

                    '$upstream_cache_status '

                    'Cache-Control: $upstream_http_cache_control '

                    'Expires: $upstream_http_expires '

                    '"$request" ($status) '

                    '"$http_user_agent" '; #定义日志格式(此日志格式可以显示hit miss等,显示缓存是否被击中,老版本默认可以,但是新版本,发现需要加上这个)

    server #此处为缓存服务器

    {


listen       8089;

server_name  SPIDER.YKBDAS;

location /

{

proxy_cache cache_one;

#对不同的HTTP状态码设置不同的缓存时间

proxy_cache_valid  200 304 12h;

#以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存内容到二级缓存目录内

proxy_cache_key  $host$uri$is_args$args;

proxy_set_header Host  $host;

proxy_set_header X-Forwarded-For  $remote_addr;

proxy_pass http://172.33.11.7:8080; #此处跳转到真实的图片服务器



            access_log  /home/spider/spider_nginx/nginx/logs/cache.log cache; #使用这个日志格式


expires      1d;

}

#用于清除缓存,假设一个URL为http://192.168.8.42/test.txt,通过访问http://192.168.8.42/purge/test.txt就可以清除该URL的缓存。


location ~ /purge(/.*)

{

#设置只允许指定的IP或IP段才可以清除URL缓存。

allow            127.0.0.1;

deny            all;

#proxy_cache_purge   cache_one$host$1$is_args$args;

}


#扩展名以.php、.jsp、.cgi结尾的动态应用程序不缓存。

location ~ .*\.(php|jsp|cgi)?$

{

proxy_set_header Host  $host;

proxy_set_header X-Forwarded-For  $remote_addr;

}


access_log  off;

}


#真实的图片服务器

server

{

listen 8080;

server_name SPIDER.YKBDAS;

location /

{

root /data02/spider;

}


access_log      /home/spider/spider_nginx/nginx/logs/nginx_access.log;

}


}