2011-08-29 40 views
12

Apache và Node.js có điểm chung. Càng sử dụng Node.js, tôi càng thích Node.js hơn; tương tự, tôi càng sử dụng Apache, tôi càng thích Node.js.Node.js làm vùng chứa ứng dụng

Một điều tốt về Apache mặc dù, nó có thể thực hiện rất nhiều thứ thông qua cùng một cổng. PHP, Python, Perl, các ứng dụng khác nhau, các đường dẫn khác nhau, toàn bộ magilla. Node.js không làm điều đó, và nó không phải là nghĩa vụ nhưng tôi muốn làm một cái gì đó tương tự.

Tôi muốn cung cấp cho nó danh sách tiền tố URL (hoặc regexps lý tưởng) và đủ thông tin, nếu nó nhận được yêu cầu khớp với tiền tố cụ thể, nó sẽ chuyển yêu cầu đến một cá thể cấp dưới chạy một tập lệnh được chỉ định (và nó sẽ bắt đầu một ví dụ nếu nó chưa có, và đóng nó lại khi làm như vậy có vẻ thận trọng). Về cơ bản, tôi muốn nodejs-proxycluster hợp tác. Với nó, tôi có thể chạy một số ứng dụng cùng nhau trên cùng một máy thông qua cổng 80.

Điều này có vẻ khá dễ dàng và rất hữu ích và tôi sắp sửa viết nó khi nó xảy ra với tôi, "Điều này có vẻ khá dễ dàng và rất hữu ích - có lẽ ai đó đã viết nó rồi! " Bất kỳ đề xuất?

+6

+1 cổ điển. "Tôi càng sử dụng apache, tôi càng thích node.js" – Raynos

+0

Mongrel2 có thể được sử dụng để định tuyến các yêu cầu như bạn muốn (nếu tôi hiểu chính xác) và có các ràng buộc cho nút. Nó không phải là phần mềm Node. – Austin

+0

@Austin - có vẻ như nó sẽ hoạt động, nhưng tôi muốn có một mô-đun Node (một "nốt"?). Đó là niềm tin của tôi rằng có thể xây dựng một hệ thống phức tạp, hiệu quả cao hoàn toàn từ Javascript và tôi muốn thử nghiệm niềm tin này. – Malvolio

Trả lời

7

Node.js không có bất kỳ khả năng tích hợp nào để định tuyến các yêu cầu đến các ứng dụng khác nhau, nhưng các khung như thế này đang được phát triển.

Nodejitsu Haibu lưu ý - nó quản lý quy trình con cho từng ứng dụng và sử dụng node-http-proxy để định tuyến các yêu cầu.

+0

Câu trả lời đã xác minh này cần được cập nhật. –

+0

@ Miss.Code Hãy thoải mái! – s4y

1

Bạn có thể xem http://expressjs.com mà tôi mô tả dưới dạng 'sinatra cho nút'. Nó cung cấp cho toàn bộ URL/mẫu định tuyến dựa trên điều. Bạn có thể ghép nối điều này với https://github.com/visionmedia/express-resource để tạo một phương pháp tiếp cận tài nguyên kiểu RESTful kinda.

+0

Bạn có chắc chắn không? Tôi đã xem qua các tài liệu và có vẻ như định tuyến là các chức năng nội bộ, chứ không phải các nút khác, rất khác nhau. – Malvolio

+0

Tôi đoán đây là tôi giải thích "nó chuyển yêu cầu sang một cá thể cấp dưới" như "định tuyến yêu cầu tới một chuỗi mà bạn có thể làm bất kỳ thứ gì với nó" thay vì "nếu cần thiết. ". Đó là nơi tôi sẽ nhìn vào thần + nginx + một hàng đợi yêu cầu để tải cân bằng hơn là viết một cái gì đó từ đầu. YMMV. Liên kết có liên quan: http://blog.acmarques.com/deploying_node_with_nginx_and_god –

0

Với tôi, có vẻ như bạn đang tìm kiếm một proxy HTTP dựa trên sự kiện (để thay thế Apache) - về vấn đề đó, nginx dường như là vị vua hiện tại của ngọn đồi.

+0

Bạn có chắc chắn không? Nó không giống như nó sẽ duy trì quy trình con để phục vụ những yêu cầu đó proxy. – Malvolio

+0

@Malvolio Nhiều người sử dụng nginx làm proxy * ngược lại để phân phối các yêu cầu cho các cá thể node.js riêng biệt. – s4y

+0

@Sidnicious - cảm ơn, nhưng câu hỏi của tôi là, nó sẽ * duy trì * (tức là, khởi động và nếu được khuyến nghị, tắt) các phiên bản node.js đó. Nếu không, tôi sẽ phải xây dựng một chương trình node.js, và chương trình đó cũng có thể thực hiện quá trình proxy; nếu nó * sẽ * [nhảy hạnh phúc]. – Malvolio

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