Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
28
Dung lượng
0,92 MB
Nội dung
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Cân tải Web-Proxy Client với ISA Server 2004 Standard Edition phần Nguồn : quantrimang.com Trong chỉnh sửa cấu hình script ISA Server 2004 Standard Edition cung cấp triển khai cho máy khách trình duyệt Cân tải Web-proxy thường hiểu số chức ISA Server Enterprise Edition cung cấp Nhưng với nhiều người, chi phí phụ Enterprise Edition (phiên doanh nghiệp) khiến họ phải lưỡng lự, mong muốn tổ chức hay công ty cần dư để dự trữ cân tải Cho đến phiên doanh nghiệp Standard Edition cung cấp số thủ thuật, bí cho phép cân tải Nếu bạn có ý định sở hữu hai ba ISA Server làm việc hiệu với lúc, giúp bạn Giới thiệu Với ISA Server 2004 (và 2000), bạn muốn có nhiều server Webproxy cho tổ chức để chúng hoạt động hiệu với nhau, bạn nên mua phiên Enterprise dành cho doanh nghiệp Enterprise Edition hỗ trợ Cache Array Routing Protocol (hay CARP) cung cấp chế liên kết proxy lại với Nhưng có thực rõ ràng? Nếu bạn có vài trăm người dùng phải chuẩn bị lượng dư dự trữ Web-proxy lớn, bạn có thực cần phải khoản chi phí thêm đáng kể cho cặp đôi quyền Enterprise? Sự thật, người ta quan tâm đến CARP nhiều đọc Enterprise Edition Một số khía cạnh CARP cịn ẩn giấu Standard Edition chờ bạn khám phá Với hai hay ba server proxy "mảng", bạn thấy tiết kiệm nhiều khoản chi phí hiệu dùng Standard Edition Nếu nhiều ba giao thức CARP, bạn cần đến Enterprise Edition Phiên quản lý trung tâm thành phần "Enterprise" khác hỗ trợ Vậy, định dùng hai Proxy để dự trữ, bạn muốn hai chia sẻ hoạt động tải tránh khoản phụ phí, tính phức tạp Enterprise Edition thì: tuỳ chọn gì? DNS Round-Robin Network Load Balancing (NLB) Cả hai chế dùng để cung cấp số chức khả chịu sai sót (fault-tolerance) cân tải Chắc chắn nhiều người muốn thử chúng Trong hai trường hợp bạn phải cấu hình tên chung, (như với NLB IP phổ biến) để trỏ tới tất server ISA Trước Standard Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Edition, Microsoft không hỗ trợ hệ thống NLB phức tạp Bạn cấu hình trình duyệt sử dụng tên proxy chung cách trực tiếp, cấu hình "dị tìm tự động", "kịch cấu hình tự động" Các tuỳ chọn "tự động" có số cải tiến khác biệt so với phương thức tĩnh, bạn mơ tả đường định tuyến lưu thứ trở thành pearshaped Hãy thận trọng bạn dùng phương thức "tự động", trình duyệt download file cấu hình từ Server ISA (được định NLB round-robin) file nói với trình duyệt dùng proxy suốt q trình Đây khơng phải chế cân tải mà bạn mong muốn! Để vượt qua lỗi nhanh dùng phương thức "tự động", bạn cấu hình thiết lập Server ISA, sử dụng Server ISA khác cách thức lưu ISA Server sau bổ sung thơng tin vào file cấu hình trình duyệt nhận Điểm hạn chế lớn phương thức ISA Server xây dựng cache riêng chứa thơng tin vốn có ISA Server khác Đây cách sử dụng tài nguyên hiệu Các file cấu hình tự động proxy (Proxy Automatic Configuration - PAC) Nếu bạn cấu hình "dị tìm tự động" "kịch cấu hình tự động" trình duyệt, file cấu hình khơng phải đến từ ISA Server Nó trỏ tới vị trí khác chứa "kịch bản" cấu hình tuỳ biến bạn cung cấp mà ISA Server Phương thức mở tồn giới cho khả cân tải khả chịu sai sót Các kịch (script) cấu hình gì? Gần trình duyệt hỗ trợ cách không bắt buộc việc sử dụng script cấu hình tự động Chúng viết JavaScript Trình duyệt chạy chúng gọi hàm cụ thể script có đường dẫn URL tìm đến Hàm trả lại Web-proxy cho trình duyệt gửi yêu cầu URL tới Vậy script cân tải nào? Phương thức phổ biến script chạy thuật toán "hash" (thuật toán băm) URL yêu cầu dùng kết có từ hàm băm để xác định Web-proxy gửi yêu cầu tới (thuật toán trả xâu URL số nhất, gọi số băm) Cải tiến tuyệt vời phương thức trình duyệt chạy hàm băm xác định Web-proxy cho đường dẫn URL cung cấp cách hoàn chỉnh, tuỳ thuộc vào Web-proxy server Điều có nghĩa Web-proxy xây dựng cache cho "bạn" Web-proxy khác Vì thế, tài Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com nguyên khai thác cách hiệu Số lượng thuật tốn băm dùng khơng bị giới hạn Đã có chun gia phát triển mơ hình "Super Proxy Script" từ hồi năm 1996, bạn tham khảo thêm địa chỉ: http://naragw.sharp.co.jp/sps/ Nhưng với hầu hết người, công nghệ thường kết hợp với CARP Trong khảo sát tỉ mỉ script cấu hình tuỳ chọn dùng CARP Nghe đáng sợ, bạn đừng lo, định kiến trước Enterprise Edition hỗ trợ CARP Standard Edition note, tức ISA Server Standard Edition thay Tất việc 'đáng sợ' thực tự động Cache Array Routing Protocol (CARP) Như đề cập tới trên, người ta thường nói CARP nhắc đến việc bán phiên doanh nghiệp Enterprise Edition có chạy khơng CARP gồm hai kiểu: client-side CARP (trên máy khách) mà thảo luận server-side CARP (trên máy chủ) Server-side CARP CARP sử dụng chế hàm băm tương tự (nếu khơng muốn nói hồn tồn giống) với kiểu nói Nhưng dành cho máy chủ để xác định xem liệu có URL yêu cầu nhớ phụ cache khơng, khơng "bạn" có khơng? Điều tuyệt vời cho máy khách yêu cầu URL mà không không hỗ trợ client-side CARP (tức client "Secure NAT" nói ISA Server), hay server có mảng proxy theo hướng ngược lại phải định proxy lớn để gửi yêu cầu tới Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com ISA Server Enterprise Edition hỗ trợ server-side CARP bạn phải enable sử dụng thành phần Phiên Standard Edition không hỗ trợ CARP serverside Client-side CARP Nếu trình duyệt hỗ trợ client-side CARP bạn khơng phải vấn đề cho dù Web proxy Enterprise hay Standard Edition (hay chí ISA Server) Tuy nhiên Enterprise Edition tạo file cấu hình tự động với tất thành phần client-sile CARP cần thiết chỗ Thậm chí làm việc bạn không cho phép CARP cấu hình Standard Edition Lỗi xuất Standard Edition khơng hiểu có 'đối tác' hay khơng, khơng thể cấu hình thơng tin cần thiết script chuẩn bị Vì Microsoft không phiên Standard Edition tạo mã client-side CARP khơng chức script cấu hình Có nghĩa là, cần giúp đỡ chút, bạn tạo script đầy đủ chức Chúng ta xem xét script ISA Server Standard Edition tạo Chỉ cần mở trình duyệt, gõ: http://myISAServer:8080/wpad.dat (dùng tên server bạn) Ghi file u cầu, sau mở trình soạn thảo text Notepad Hãy xem đoạn mã hộp thoại đây: //Copyright (c) 1997-2004 Microsoft Corporation BackupRoute="DIRECT"; UseDirectForLocal=true; function MakeIPs(){ } DirectIPs=new MakeIPs(); cDirectIPs=0; function MakeNames(){ } DirectNames=new MakeNames(); cDirectNames=0; HttpPort="8080"; cNodes=1; function MakeProxies(){ this[0]=new Node("10.245.10.254",0,1.000000); } Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Proxies = new MakeProxies(); function Node(name, hash, load){ this.name = name; this.hash = hash; this.load = load; this.score = 0; return this; } function FindProxyForURL(url, host){ var urlhash, urllower, ibest, bestscore, list, i, j, port=HttpPort; urllower = url.toLowerCase(); if((urllower.substring(0,5)=="rtsp:") || (urllower.substring(0,6)=="rtspt:") || (urllower.substring(0,6)=="rtspu:") || (urllower.substring(0,4)=="mms:") || (urllower.substring(0,5)=="mmst:") || (urllower.substring(0,5)=="mmsu:")) return "DIRECT"; if (UseDirectForLocal && isPlainHostName(host)) return "DIRECT"; if (cDirectNames > 0) for (i = 0; i < cDirectNames; i++) if (shExpMatch(host, DirectNames[i])) return "DIRECT"; if (cDirectIPs > 0) for (i = 0; i < cDirectIPs; i += 2) if (isInNet(host, DirectIPs[i], DirectIPs[i+1])) return "DIRECT"; urlhash = HashString(url); for (i = 0; i < cNodes; i++) Proxies[i].score = Proxies[i].load * Scramble(MakeInt(urlhash ^ Proxies[i].hash)); list = ""; for (j = 0; j < cNodes; j++) { for (bestscore = -1, i = 0; i < cNodes; i++) { if (Proxies[i].score > bestscore) { bestscore = Proxies[i].score; ibest = i; } } Proxies[ibest].score = -1; list = list + "PROXY " + Proxies[ibest].name + ":" + Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com port + "; "; } list = list + BackupRoute; return list; } function HashString(url){ var h = 0; var slashes = 0; for (var i = 0; i < url.length; i++) { var c = url.charAt(i); if (c == '/') slashes++; if (slashes < 3) c = c.toLowerCase(); h += (((h & 0x1fff) > 13) & 0x7ffff)) + CharToAscii(c); h = MakeInt(h); } return h; } function Scramble(h){ h += ((h & 0xffff) * 0x1965) + ((((h >> 16) & 0xffff) * 0x1965)