Làm cách nào để lưu trữ nhiều máy chủ Web vật lý đằng sau một địa chỉ IP?


14

Tôi đang chạy nhiều máy chủ web trong nhà, mỗi máy chủ được cắm vào bộ định tuyến của tôi.

Máy chủ A Máy chủ B Máy chủ C

Hiện tại tôi chỉ có thể sử dụng một máy chủ vì cổng 80 (xx.xxx.xx.xx) của tôi chỉ vào máy chủ A. Tuy nhiên, một số tên miền trỏ đến máy chủ A, một số đến B, v.v.

Với một địa chỉ IP của tôi, làm cách nào để trỏ đến từng máy chủ? Ví dụ: A (máy chủ) của tôi ghi lại tất cả các điểm chỉ địa chỉ IP của tôi.

Xin lỗi nếu tôi nghe có vẻ khó hiểu. Hãy cho tôi biết nếu tôi không rõ ràng.

Mỗi máy chủ đang chạy Ubuntu Server 12.04.02 và đang sử dụng Apache (nếu điều đó có ích). Bộ định tuyến của tôi cũng là Netgear và ISP của tôi là Time Warner Cable.



@kobaltz Không chính xác vì đây là các máy chủ khác nhau, không phải máy chủ ảo. Đây là 3 máy chủ vật lý
Stephen Cioffi

Câu trả lời của tôi trong câu hỏi vẫn là điều tương tự khi bạn có một máy chủ proxy ngược sẽ là thứ được truy cập đầu tiên sau bộ định tuyến. Từ đó, nó sẽ đẩy dữ liệu đến một trong ba máy chủ. Bạn thậm chí có thể làm điều này từ bên trong bộ định tuyến nếu bạn sử dụng một cái gì đó như OpenWRT.
kobaltz

Tôi hiện đang sử dụng lời giải thích trong câu trả lời của tôi cho câu hỏi khác. Tôi có một máy chủ Virtual Machine có VM cho cổng và sau đó là 20 nút. Tùy thuộc vào tên miền phụ và tên miền, nó đẩy dữ liệu đến một trong 20 máy chủ.
kobaltz

Câu trả lời:


9

Các trang web sẽ được nhận ra thông qua Host:tiêu đề được gửi từ trình duyệt. Nhưng vì bộ định tuyến của bạn không có khả năng giải mã HTTP được sử dụng bởi lưu trữ ảo, bạn sẽ cần chọn một máy chủ làm "điểm cuối" (và nói cho bộ định tuyến của bạn biết địa chỉ là Máy chủ ảo / DMZ).

Sau đó, bạn định cấu hình một máy đó làm máy chủ web cho các miền và proxy của nó cho các máy khác (ví dụ: sử dụng proxy ngược Apache ) hoặc (có thể tốt hơn) bạn cài đặt proxy trên một máy đó và sử dụng nó để ghép các yêu cầu tới các máy chủ khác . Một số tên miền thậm chí có thể được lưu trữ trên cùng một máy. nginxphù hợp với loại công việc này, nhưng bạn cũng có thể sử dụng phần mềm khác (ví dụ pound).

Tôi nghĩ rằng giải pháp thứ hai tốt hơn bởi vì bạn hoàn toàn không cần phải cấu hình máy chủ web: một proxy thực hiện ủy quyền và một số máy chủ web thực hiện việc phục vụ web. Nếu bạn cần thêm máy chủ hoặc di chuyển máy chủ ảo xung quanh, kiến ​​trúc này dễ bảo trì hơn.

                                    +-- virtual hosts 1..9 -- server B
                                    |
router ----- machine A (nginx?) ----+-- virtual hosts 10..23- server C
                                    |
                                    +-- virtual hosts 24..99- server D

Độ trễ được thêm vào do yêu cầu được giải mã hai lần (một lần bởi proxy, một lần bởi người nhận dự định của nó) là không đáng kể và được bù đắp nhiều hơn bởi khả năng tăng tốc được cung cấp bởi chính proxy.


Nếu tôi tạo một máy khách VM làm proxy, hệ điều hành tốt nhất sẽ sử dụng là gì và tôi nên phân bổ tài nguyên phần cứng nào? Bạn đề cập đến việc đặt proxy này trên DMZ ... điều này có cần thiết không? Tôi không thể chuyển tiếp các cổng mà tôi muốn mở để vẫn còn một lớp bảo vệ thông qua tường lửa của bộ định tuyến và NAT?
lừa

Tài nguyên cho proxy không phải là vấn đề, nó sẽ bị ràng buộc nhiều về mạng. Đối với HĐH, tôi chắc chắn sẽ nói Unix, Linux hoặc BSD tùy thuộc vào những gì bạn cảm thấy thoải mái nhất. Ngoài ra còn có các thiết bị làm sẵn cho một số giải pháp ảo hóa (vmware, virtualbox, xen, v.v.). Và vâng, bạn chắc chắn chỉ có thể chuyển tiếp các cổng mà bạn cần.
LSerni
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.