Có nhiều máy chủ web đằng sau một bộ cân bằng tải / proxy ngược là khá phổ biến đối với Drupal và được hỗ trợ tốt. Varnish thường được sử dụng trong thế giới Linux bởi vì thứ đó cực kỳ nhanh khi có thể thực sự sử dụng nó, nghĩa là khách truy cập ẩn danh. Đó rõ ràng không phải là trường hợp cho trang web của bạn.
Các phiên được lưu trữ trong cơ sở dữ liệu theo mặc định, vì vậy đó không phải là vấn đề. Điều khác duy nhất cần được chia sẻ trên tất cả các máy chủ là thư mục tệp công khai và bất kỳ tệp nào khác giống như các tệp riêng tư nếu bạn đang sử dụng một cái gì đó như thế). Trong hầu hết các trường hợp, một hệ thống tệp được chia sẻ / phân phối như NFS được sử dụng cho việc này mặc dù có một số cách tiếp cận nâng cao hơn. Trên một trang web mà tôi tham gia là hệ thống tệp được cung cấp bởi một máy chủ khác là NFS-mount trên các máy chủ Drupal (vì vậy truy cập chậm) và đang được Lighthttpd phân phối dưới một tên miền khác. Nhưng một lần nữa, điều đó có lẽ không phù hợp với bạn vì bạn sẽ không đến máy chủ nhiều hình ảnh và tập tin css, tôi đoán vậy.
Như được đề cập bởi rocketeerbkw, có các phụ trợ bộ đệm cho Memcache, Redis và những người khác. Cho đến nay, Ive chỉ sử dụng Memcache nhưng gần đây tôi đã bắt đầu tìm hiểu về Redis và nó có vẻ rất hứa hẹn nhưng tôi không chắc liệu nó có sẵn cho Windows hay không. Tuy nhiên, có thể thiết lập một máy chủ Linux riêng được sử dụng cho bộ đệm. Drupal 7 phụ thuộc rất nhiều vào bộ nhớ cache, việc có thể đưa chúng ra khỏi cơ sở dữ liệu là rất quan trọng vì hai lý do:
Các công cụ như Redis và Memcache được thiết kế để tra cứu dựa trên khóa nhanh và chúng giữ dữ liệu của chúng luôn trong bộ nhớ để giúp việc tra cứu nhanh nhất có thể. Họ cũng đã tích hợp hỗ trợ để tự động dọn dẹp dữ liệu bộ đệm cũ nếu giới hạn được định cấu hình gần hơn.
Có thể thậm chí quan trọng hơn, nó giúp tải cơ sở dữ liệu xuống. Khi bạn đã có thiết lập cơ bản tại chỗ, việc thêm các máy chủ web bổ sung rất dễ dàng. Khi bạn bắt đầu đạt đến giới hạn của một máy chủ cơ sở dữ liệu, mọi thứ sẽ phức tạp hơn nhiều và bạn cần xem xét những thứ như sao chép chính / chủ (Drupal 7 không thực sự thu được nhiều từ môi trường chính / phụ).
Vì vậy, về cơ bản, đó chỉ là API của riêng bạn mà bạn cần quan tâm. Nếu có thể, bạn cần đảm bảo rằng mọi thứ luôn có sẵn từ tất cả các máy chủ. Bạn có thể sử dụng cơ sở dữ liệu, hệ thống tệp hoặc một cái gì đó khác (Drupal cũng có thể sử dụng MongoDB để lưu trữ dữ liệu nhất định, ví dụ như các trường). Nếu đó không phải là một tùy chọn, thì bạn sẽ cần phải sử dụng các phiên dính để người dùng luôn kết thúc trong cùng một ví dụ. Tuy nhiên, bạn thực sự nên cố gắng tránh điều đó bởi vì nếu một trong các máy chủ bị lỗi thì tất cả người dùng trên máy chủ đó cần kết nối lại với máy chủ khác, có thể mất dữ liệu.