2009-05-26 32 views
9

Chúng tôi có một số hình ảnh và tài liệu PDF có sẵn thông qua trang web của chúng tôi. Những hình ảnh và tài liệu này được lưu trữ trong điều khiển nguồn và được sao chép nội dung khi triển khai. Chúng tôi đang xem xét việc tạo một máy chủ hình ảnh riêng biệt để đưa hình ảnh và tài liệu PDF của chúng tôi lên - do đó giảm đáng kể phần lớn gói triển khai của chúng tôi.Ưu và nhược điểm của một máy chủ hình ảnh riêng biệt (ví dụ: images.mydomain.com)?

Có ai có kinh nghiệm với phương pháp này không?

Tôi tự hỏi về bất kỳ "gotchas" nào - như các vấn đề XSS và/hoặc các vấn đề về trình duyệt cung cấp nội dung từ miền phụ thay thế?

Trả lời

20

Pro:

Nhiều trình duyệt sẽ chỉ phân bổ hai ổ cắm để tải xuống nội dung từ một máy chủ duy nhất. Vì vậy, nếu index.html được tải xuống từ www.domain.com và nó tham chiếu 6 tệp hình ảnh, 3 tệp javascript và 3 tệp CSS (tất cả trên www.domain.com), trình duyệt sẽ tải xuống 2 tệp cùng một lúc, với khác chặn cho đến khi một ổ cắm là miễn phí.

Nếu bạn kéo 6 tệp hình ảnh ra trên một máy chủ riêng biệt, hãy nói images.domain.com, bạn sẽ nhận được thêm hai ổ cắm chuyên dụng để tải xuống hình ảnh của mình. Điều này song song với quá trình tải xuống nội dung, theo lý thuyết, trang của bạn có thể hiển thị nhanh gấp hai lần.

Côn:

Nếu bạn đang sử dụng SSL, bạn sẽ cần phải hoặc là nhận được một giấy chứng nhận SSL single-host bổ sung cho images.domain.com hoặc một chứng chỉ SSL wildcard cho * .domain.com (phù hợp với bất kỳ tên miền phụ). Việc không làm như vậy sẽ tạo cảnh báo trong trình duyệt cho biết trang chứa nội dung an toàn và không an toàn.

+0

Nếu bạn thực sự quan tâm đến hiệu năng và tải xuống tài nguyên lớn, bạn có thể đặt chúng trên miền có dấu * trong dns và sau đó ngẫu nhiên tên miền phụ trong lệnh gọi tài nguyên, như http: // .imagesomain.com/image.gif, v.v. Điều này có thể cung cấp cho bạn nhiều ổ cắm vì có nhiều tài nguyên và tăng tốc tải của bạn một chút. – Eli

+3

Bạn thực sự không muốn thực hiện điều này quá xa hoặc bạn có thể thấy một sự mất mát ròng trong hoạt động. Tôi sẽ không sử dụng nhiều hơn 4 máy chủ lưu trữ nội dung tĩnh (ví dụ: "images1.domain.com", "images2.domain.com", "images3.domain.com", "images4.domain.com") cho hầu hết các trang web. Các vấn đề chính sẽ làm suy giảm hiệu suất khi bạn tăng số lượng máy chủ lưu trữ nội dung là bộ nhớ đệm và HTTP lưu giữ. Cùng một tệp được tải xuống từ một máy chủ lưu trữ nội dung sẽ không được coi là được đổi thành tiền mặt trên một máy chủ lưu trữ nội dung khác. Và HTTP keep-alives cho phép cùng một kết nối TCP được tái sử dụng cho nhiều yêu cầu. 1 đến 4 máy chủ cung cấp cho bạn một sự cân bằng tốt. –

+0

Chứng nhận SSL tháng 1 do Let's Encrypt phát hành sẽ hỗ trợ các tên miền phụ ngoài đỉnh cùng một lúc. Và các trình duyệt hiện đại giờ đây hé lộ qua hàng chục lượt tải xuống nội dung song song - không chỉ hai lần nữa. –

3

Ưu điểm:

-Load cân

-isolating một chức năng khác nhau

Nhược điểm:

-Xem thêm công việc (khi bạn tạo một trang trên trang web chính bạn sẽ phải duy trì các tài nguyên trên máy chủ riêng)

Những thứ như XSS là một vấn đề về mã không khử trùng đầu vào (hoặc đầu ra cho vấn đề đó). Vấn đề duy nhất có thể phát sinh là nếu bạn có các cookie cụ thể của miền phụ được sử dụng để xác thực .. nhưng đó thực sự là một sửa chữa nhỏ nhặt.

2

Nếu bạn đang phục vụ HTTPS và bạn phục vụ một hình ảnh từ một miền HTTP thì bạn sẽ nhận được cảnh báo cảnh báo bảo mật của trình duyệt bật lên khi bạn sử dụng nó.

Vì vậy, nếu bạn làm HTTPS, bạn sẽ cần phải mua HTTPS cho hình ảnh awell miền của bạn nếu bạn không muốn làm phiền các địa ngục ra khỏi người dùng của bạn :)

Có nhiều cách khác xung quanh này, nhưng nó không phải là đặc biệt trong phạm vi của câu trả lời này - nó chỉ là một cảnh báo!

+1

Nếu James đang nói những gì tôi nghĩ anh ấy, đó là hình ảnh thực sự được phân phối bởi tập lệnh xuất ra nội dung (tức là, content-type: image/jpeg); sau đó miễn là kịch bản trên máy chủ bảo mật (https://secure.domain.com/somescript.php?i=4567aldh), điều này không phải là một vấn đề. Sau đó, một lần nữa, tôi có thể là một trong những sự hiểu lầm các thiết lập .... –

+0

(oops, quên thoát khỏi phần https. Nó biến nó thành một liên kết. Xin lỗi.: /) –

+1

"Có những cách khác xung quanh này" đã được giới thiệu chính xác điều đó - một tập lệnh trên HTTPS tìm nạp hình ảnh từ máy chủ khác. Vì vậy, bạn hoàn toàn đúng, nó không phải là một vấn đề thực sự! – joshcomley

7

Bạn cũng sẽ có một miền khác, không gửi dữ liệu cookie theo mọi yêu cầu. Điều này có thể tăng hiệu suất.

5

Một điều khác chưa được đề cập là bạn có thể sử dụng các máy chủ web khác nhau để phân phát các loại nội dung khác nhau. Ví dụ: nội dung tĩnh của bạn có thể được phân phát qua lighttpd hoặc nginx trong khi vẫn phân phối nội dung động của bạn ngoài Apache.

Các vấn đề liên quan