修改proxy.conf,配置http全局环境
server_names_hash_bucket_size 128; #指定服务器名称哈希表的框大小client_header_buffer_size 32k; large_client_header_buffers 4 128k; #以上两个是设定客户端请求的Header头缓冲区大小,对于cookie内容较大的请求,应增大改值。(400或414错误)client_max_body_size 8m; #允许客户端请求的最大单文件字节数client_body_buffer_size 64k; #缓冲区代理缓冲用户端请求的最大字节数,可以理解为保存到本地再传给用户proxy_connect_timeout 600; #nginx跟后端服务器连接超时时间(代理连接超时)proxy_read_timeout 600; #连接成功后,后端服务器响应时间(代理接收超时)proxy_send_timeout 600; #后端服务器数据回传时间(代理发送超时)proxy_buffer_size 64k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小proxy_buffers 4 64k; #proxy_buffers缓冲区,网页平均在64k以下的话,这样设置proxy_busy_buffers_size 128k; #高负荷下缓冲大小(proxy_buffers*2)proxy_temp_file_write_size 1024m; #设定缓存文件夹大小,大于这个值,将从upstream服务器传递请求,而不缓冲到磁盘proxy_ignore_client_abort on; #不允许代理端主动关闭连接sendfile on;tcp_nopush on;keepalive_timeout 65;tcp_nodelay on;gzip on;gzip_min_length 2k; #最小压缩文件大小gzip_buffers 4 16k;gzip_http_version 1.0;gzip_proxied any; #前端是squid的情况下要加此参数,否则squid上不缓存gzip文件gzip_comp_level 5;gzip_types text/plain text/css text/htm application/xml application/x-javascript;gzip_vary on;server_tokens off;#设置Web缓存区名称为cache_one,内存缓存空间大小为100MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为5GB。proxy_temp_path /tmp/proxy_temp_path;proxy_cache_path /tmp/proxy_cache_path levels=1:2 keys_zone=cache_one:100m inactive=1d max_size=5g; |
创建缓存存放目录
mkdir /tmp/proxy_temp_pathmkdir /tmp/proxy_cache_pathchmod -R 777 /tmp/proxy_*echo "mkdir -p /tmp/proxy_temp_path" >> /etc/rc.localecho "mkdir -p /tmp/proxy_cache_path" >> /etc/rc.localecho "chmod -R 777 /tmp/proxy_*" >> /etc/rc.local |
修改nginx.cnf,配置nginx做前端代理缓存服务器
http {include proxy.conf; ... upstream tomcat_groups {ip_hash; server 192.168.0.1:8080; server 192.168.0.2:8080;}server {listen 80 default; server_name _;return 500; access_log off;}server {listen 80; server_name testA.domian.com testB.domian.com testC.domian.com; location / {proxy_next_upstream http_502 http_504 error timeout invalid_header; #如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。proxy_cache cache_one; #进行缓存,使用Web缓存区cache_oneproxy_cache_valid 200 304 12h; #对不同的HTTP状态码设置不同的缓存时间proxy_cache_valid 301 302 1m; proxy_cache_valid any 1m; proxy_cache_key $host$uri$is_args$args; #以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存内容到二级缓存目录内proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Accept-Encoding "none"; #避免缓存被压缩的文件造成乱码proxy_ignore_headers "Cache-Control" "Expires"; #proxy_cache支持后台设定的expires。proxy_pass http://tomcat_groups; expires 12h;}location ~ .*\.(php|jsp|aspx|cgi|xml)?$ {proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://tomcat_groups;}location ~ /purge(/.*) {allow 127.0.0.1; allow 192.168.0.0/24; #设置只允许指定的IP或IP段才可以清除URL缓存。allow all; proxy_cache_purge cache_one $host$1$is_args$args;} }}