user www www;



worker_processes 8;



error_log /usr/local/webserver/nginx/logs/nginx_error.log crit;



pid /usr/local/webserver/nginx/nginx.pid;



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



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;





#注: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_dir levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;





upstream backend_server {



server 192.168.8.43:80 weight=1 max_fails=2 fail_timeout=30s;



server 192.168.8.44:80 weight=1 max_fails=2 fail_timeout=30s;



server 192.168.8.45:80 weight=1 max_fails=2 fail_timeout=30s;



}





server   {



listen 80;



server_name www.yourdomain.com 192.168.8.42;



index index.html index.htm;



root /data0/htdocs/www;





location /   {   



#如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移



proxy_next_upstream http_502 http_504 error timeout invalid_header;



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://backend_server;   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;



allow 192.168.0.0/16;



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;



proxy_pass http://backend_server;





}



access_log off;



}



}



 


转载于:https://blog.51cto.com/yakexi/1212692