Tôi đang sử dụng một máy chủ để lưu trữ nhiều ứng dụng web Node.js, được phân phối trên nhiều tên miền. Thực hành hiện tại của tôi là chạy một máy chủ Express cho mỗi ứng dụng trên một cổng khác và chạy một máy chủ cơ sở chỉ đơn giản là định tuyến (chuyển hướng) các yêu cầu đến đúng máy chủ cổng/Express. Điều này có nghĩa là máy chủ cơ sở của tôi đang định tuyến mọi yêu cầu HTTP đơn lẻ (và bằng cách chuyển hướng thủ công nó) và người dùng của tôi thấy ứng dụng của tôi được lưu trữ tại [hostname.com]: 8000. Sau khi nghiên cứu một chút, tôi thấy rằng tôi có thể sử dụng http-proxy cho các nhu cầu định tuyến của mình, nhưng tôi vẫn muốn biết liệu có cách nào tốt nhất để chạy nhiều máy chủ Express trên cùng một hệ thống hay không. Đây là cách tôi dự định thực hiện:Tôi nên tổ chức nhiều máy chủ Express trên cùng một hệ thống như thế nào?
Mỗi ứng dụng web sẽ có thư mục riêng, với cấu trúc thư mục Express hoàn chỉnh (app.js, tuyến đường, chế độ xem, v.v.) Ứng dụng sẽ được nhóm theo miền, vì vậy cấu trúc ví dụ thư mục sẽ là:
hostname.com/
app.js
routes/
views/
...
app1/
app1.js
routes/
views/
...
app2
...
hostname2.com/
app.js
routes/
views/
...
tôi sẽ phải chạy mỗi app.js riêng với nút (hoặc với forever, mà tôi hiện đang sử dụng), và mỗi người sẽ phải sử dụng một cổng khác nhau trong nội bộ , với chuyển hướng giữa các ứng dụng được trỏ vào cổng của ứng dụng đích.
Vì vậy, đó là kế hoạch hiện tại của tôi. Có vấn đề gì với nó, và tôi nên cố tránh những cạm bẫy nào? Quan trọng nhất, là có giải pháp được thiết lập cho vấn đề này - vấn đề lưu trữ nhiều ứng dụng web trên cùng một hệ thống với Node.js/Express?
EDIT: Tôi có kế hoạch cuối cùng sử dụng WebSockets và HTTPS và số lượng băng thông mà thiết lập của tôi có thể hỗ trợ ít quan trọng đối với tôi - đây là máy chủ phát triển (ít nhất là bây giờ). Cảm ơn David Ellis đã đề cập đến vấn đề WebSockets.
EDIT SECOND: Nhờ cả EhevuTov và David Ellis cho câu trả lời của họ, cả hai đều giúp ích rất nhiều. Tôi vẫn đang giải quyết một cấu trúc tổng thể cho đơn đăng ký của mình và có vẻ như câu hỏi đó được giải quyết một cách chi tiết bằng cách this StackOverflow question
THIRD EDIT: Tôi đã đưa ra một số câu hỏi. đi). Hãy xem this file in my GitHub repository, thúc đẩy những gì tôi đã học được từ câu trả lời cho câu hỏi này!
Cảm ơn nhận xét. Tôi đã bắt đầu sử dụng vhost (với sự giúp đỡ của một số người dùng IRC hữu ích trong #express), và nó hoạt động như một sự quyến rũ. Cũng cảm ơn cho những người đứng đầu lên khả năng di chuyển lên đến Node.Cluster. – Aaron
@aaron Bạn rất hoan nghênh. Hẹn gặp bạn trên IRC, có thể – EhevuTov
@Aaron Bạn có một số mã bạn có thể chia sẻ để chỉ cho chúng tôi cách bạn làm điều đó không? – Matt