2009-06-05 7 views
21

Tôi đã đọc trong tài liệu hướng dẫn của google pagespeed Plugin mới của họ, mà họ khuyên bạn nên sử dụng cookieless domains để cải thiện hiệu suất:Làm cách nào để thiết lập IIS bằng miền không có cookie để cải thiện hiệu suất?

nội dung tĩnh, chẳng hạn như hình ảnh, JS và các tập tin CSS, không cần phải được kèm theo các tập tin cookie, vì không có tương tác người dùng với các tài nguyên này. Bạn có thể giảm độ trễ yêu cầu bằng cách phân phối tài nguyên tĩnh từ miền không phân phối cookie.

Có ai biết cách thực hiện việc này trong IIS không?

+0

serverfault.com có ​​thể mang lại cho bạn nhiều kết quả hơn – Will

+0

Có rất nhiều câu hỏi liên quan đến IIS trên SO, vì vậy tôi nghĩ nó phù hợp (bao gồm một từ bạn: http://stackoverflow.com/questions/321939/control-a-service-on-a-remote-server-from-iis) – Keltex

+2

Điều này là hoàn tác một câu hỏi liên quan đến SO dev. – Kev

Trả lời

23

gì bài viết Google đang cho thấy là bạn phục vụ tất cả nội dung tĩnh của bạn từ một miền mà cookie không được ban đầu được thiết lập bởi tên miền đó phục vụ.

Cookie được thiết lập theo hai cách - bằng cookie phiên (ví dụ bằng ASP hoặc ASP.NET yêu cầu) hoặc một cách rõ ràng bởi ứng dụng của bạn.

Những điều này sẽ được đăng tải lại cho máy chủ trên mỗi yêu cầu tiếp theo cho các tên miền đã đặt cookie (bất kể yêu cầu cho nội dung tĩnh hoặc động) do đó tăng tải trọng yêu cầu.

Điều bạn đang làm bằng cách có miền thứ hai để phân phối nội dung tĩnh (HTML, CSS, Hình ảnh v.v.) đang tạo yêu cầu cookie miễn phí vì không có cookie ban đầu nào được đặt ở vị trí đầu tiên cho miền đó.

Trong IIS nó đơn của bạn, ISAPI lọc hoặc mở rộng ISAPI mà sẽ thêm một cookie. Nếu máy chủ IIS của bạn không chặn các yêu cầu cho nội dung tĩnh (vì điều này thường được xử lý bởi trình điều khiển chế độ hạt nhân http.sys) thì sẽ không có cookie nào được thêm vào phản hồi. Nó chỉ tiếp tục lên các đường ống yêu cầu mà cookie đi vào chơi.

Vì vậy, về cơ bản không có cách nào để định cấu hình rõ ràng các miền không có cookie trong IIS.

9

Nếu bạn chỉ cần đặt tất cả tài nguyên tĩnh của mình vào, ví dụ: static.mysite.com và nếu bạn không bao giờ đặt bất kỳ cookie nào trong miền đó, trình duyệt sẽ không bao giờ gửi cookie khi truy xuất tài nguyên từ miền tĩnh của bạn .

Đó là tất cả những gì Google đang nói. Không có gì để cấu hình, chỉ để tổ chức.

+1

Vâng, nhưng loại bỏ điều này nhiều hơn bù đắp cho việc tìm kiếm dns tăng lên? Nếu trang của bạn chứa nội dung dns từ nhiều hơn một tên miền (ngay cả khi nó là một trong các tên miền phụ của riêng bạn), thì điều này có yêu cầu 2 lần tra cứu dns không? –

3

phân tích AFAIK google đặt cookie cho tất cả các tên miền phụ, vì vậy nó sẽ là vô ích nếu bạn đang sử dụng phân tích?

+0

Google Analytics nên biết về tên miền phụ như thế nào? – Olaf

+0

@olaf, không, nó chỉ giả định mọi thứ dưới nó, ví dụ: * .mydomain.com –

6

AFAIK Google Analytics đặt cookie cho tất cả tên miền phụ, vì vậy sẽ vô dụng nếu bạn đang sử dụng phân tích?

Tôi cũng đã trải nghiệm điều này, bạn phải sử dụng một miền hoàn toàn khác để tránh phân tích cookie/adsense được đặt. Sử dụng static.yourdomain.com sẽ không cắt nó.

Dưới đây là để hy vọng Google sẽ thay đổi phân tích các tập tin cookie của họ để chúng ta sẽ không phải tất cả phải mua tên miền mới để phục vụ nội dung cookie ít hơn.

1

Dưới đây là một ví dụ bằng cách sử dụng mã theo dõi không đồng bộ của Google Analytics, làm thế nào để thiết lập các miền để theo dõi: _gaq.push(['_setAccount', 'UA-XXXXXXX-x'],['_setDomainName', 'www.example.com'],['_trackPageview']);

Dưới đây là một ví dụ sử dụng phiên bản trước của mã theo dõi:

 
var pageTracker = _gat._getTracker("UA-XXXXXXX-x"); 
pageTracker._setDomainName("www.example.com"); 
pageTracker._trackPageview(); 

và đây là Google phải nói gì về điều này: Google Analytics & Cookies