nginx 反向代理緩存服務器配置

修改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;}   }}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章