2013-07-08 15 views
55

Điều đầu tiên: Tôi đã tìm kiếm tất cả các công ty lưu trữ web đã biết để chia sẻ lưu trữ các nút nhưng tôi không tìm thấy bất kỳ ai. Sau đó, tôi đã biết rằng các nodej không thể chạy trên một hệ thống máy chủ chia sẻ. Tôi muốn biết tại sao?Tại sao node.js không thể chạy trên shared hosting?

Điều thứ hai: Tôi là một người bình thường với ngân sách bình thường. Chọn một máy chủ vps hoặc deicated hoặc lưu trữ đám mây làm cho nút chạy, nhưng nó ra khỏi phạm vi tiền túi của tôi so với các dịch vụ lưu trữ chia sẻ PHP, vì vậy tôi nên tìm hiểu node.js?

+1

Gandi cung cấp - http://wiki.gandi.net/en/simple/instance/nodejs và https://www.gandi.net/hosting/simple?language=nodejs&db=mysql – Dereckson

+3

Có, nó có thể! Xem [answer] của tôi (http://stackoverflow.com/a/27391738/912946). – niutech

Trả lời

4

Node không hoạt động giống như hầu hết các máy chủ. Với IIS và Apache, có một máy chủ chạy nhiều trang web, chính nó cho chính nó vào các môi trường chia sẻ. Với Node, bạn đang chạy máy chủ của riêng mình để thay vào đó bạn có xu hướng chia sẻ tài nguyên trên máy.

Tôi không thể nói cho bạn biết liệu nó có đáng học hay không vì tôi không biết động lực của bạn, nhưng nó có thể mở rộng cơ hội nghề nghiệp của bạn nếu bạn chọn đến đó và mở rộng kỹ năng của bạn.

Dưới đây là một số tùy chọn lưu trữ trong phạm vi giá thấp.

http://nodester.com/

https://www.nodejitsu.com/

+0

Nút hoạt động với IIS -> http://www.hanselman.com/blog/InstallingAndRunningNodejsApplicationsWithinIISOnWindowsAreYouMad.aspx –

+6

Kể từ tháng 3 năm 2015, nút bấm không giải quyết, nodejitsu đã được xếp vào GoDaddy và không còn cung cấp nút PaaS – SW4

+0

Tôi sử dụng nútj bởi vì tôi không phải học một ngôn ngữ mới mà tôi đã biết. – zachdyer

26

Về mặt lý thuyết nó có thể, nhưng thực tế nó phụ thuộc vào nhà cung cấp hosting để có cơ sở hạ tầng như vậy tại chỗ.

Nút so với nền tảng web cổ điển là nền tảng tự bền vững. Trong trường hợp với PHP (ví dụ), nó chạy trên với apache hoặc nginx (hoặc bất kỳ khác), và PHP nó tự chỉ là ngôn ngữ kịch bản với một số thư viện mà không làm nhiều ngoài việc thực hiện logic, và yêu cầu giải pháp máy chủ web. Máy chủ web tạo ổ cắm để nghe các cổng cụ thể cho lưu lượng truy cập, sẽ thực hiện phép thuật của riêng nó và sẽ thực thi PHP để xử lý các yêu cầu.

Trong khi đó, node.js tạo socket riêng và liên kết nó với cổng riêng. Điều đó mang lại cho nó quyền truy cập cấp thấp hơn nhiều, vì vậy nó là máy chủ web nó tự. Bạn không thể liên kết với một cổng hai ứng dụng, do đó, nó đã không thể chia sẻ.
Có các dịch vụ (máy chủ web) cho phép bạn tạo proxy để định tuyến lưu lượng truy cập đến quy trình node.js nhưng điều đó không hiệu quả trong một số trường hợp và lưu trữ được chia sẻ không cung cấp chức năng như vậy.

Khi node.js vẫn còn khá trẻ cũng như là tốt, khác nhau, nó vẫn không đạt được phần lớn các dịch vụ lưu trữ được chia sẻ. Có một số dịch vụ có sẵn trực tuyến để lưu trữ các ứng dụng node.js của bạn theo cách 'chia sẻ'. Ngoài ra, bạn có thể thuê EC2 Micro instance trên AWS miễn phí (Free Tier) trong một năm, cung cấp cho bạn nhiều khả năng và thời gian để thử và thử nghiệm các công cụ khác nhau. Bạn sẽ nhận được hệ thống bán chuyên dụng, nơi bạn có thể làm khá nhiều thứ (cài đặt phần mềm, chỉnh sửa cấu hình hệ điều hành và nhiều thứ khác), nơi chia sẻ lưu trữ sẽ không cho phép bạn làm như vậy.

+12

Câu trả lời này là sai. Bạn có thể chạy Node.js trên đầu trang của cả Nginx và Apache. Trên thực tế, cả hai máy chủ này thường được sử dụng để đảo ngược proxy với các ứng dụng Node. Ví dụ, xem phần ghi trên sử dụng nginx với nút [ở đây] (https://engineering.gosquared.com/optimising-nginx-node-js-and-networking-for-heavy-workloads). Lý do tại sao PHP phổ biến hơn nhiều trên lưu trữ được chia sẻ là vì nó được sử dụng lâu hơn. Node được phát hành vào năm 2009, PHP đã có từ năm 1995. Trong thời gian này, máy chủ đã có thời gian để thực hiện hỗ trợ và không có nhiều lý do để bận tâm hỗ trợ các ngôn ngữ khác. – slang

+6

Xin chào @ slang800. Bạn đã bỏ lỡ điểm của câu hỏi ở đây. Và vấn đề là: Shared Hosting + Node.js. Bởi "Sharing Hosting" có nghĩa là - bất kỳ chia sẻ cổ điển lưu trữ như godaddy, vv Họ không cho phép bạn cài đặt bất kỳ phần mềm ngăn xếp trên không gian được chia sẻ - họ chỉ cung cấp các giải pháp đã sẵn sàng. Và giải thích lý do tại sao điều đó chỉ ở trên. Trong khi những gì bạn đang nói là câu chuyện khác nhau và trên thực tế, các nền tảng lưu trữ được chia sẻ đã bật node.js như một phần trong danh sách sản phẩm của chúng mà chúng có thể cung cấp dịch vụ. Nhưng nó vẫn còn chặng đường dài để đi. Không liên quan gì đến proxy ở đây. Câu chuyện hoàn toàn khác. – moka

+0

Tôi không nói rằng Node.js có thể được chạy trên lưu trữ được chia sẻ, điều đó rõ ràng là không đúng ngay bây giờ. Tôi nói rằng lời giải thích trong câu trả lời (rằng nó không thể chạy dưới Nginx hay Apache) là sai, bởi vì nó có thể. Node.js về cơ bản không thể được sử dụng trong một môi trường chia sẻ vì một lý do giống như nó "tạo ra [ổ cắm riêng của nó]". Nó chỉ chưa được thiết lập để làm việc trong một môi trường chia sẻ lưu trữ nào được nêu ra, bởi vì nó khá trẻ. – slang

11

Nhìn vào Heroku. Đối với các ứng dụng lưu lượng truy cập thấp đơn giản, chúng miễn phí và có thể dễ dàng được thu nhỏ cho lưu lượng truy cập nhiều hơn (với chi phí bổ sung). Ngoài ra, bạn sử dụng Git để triển khai, vì vậy thực sự đơn giản để cập nhật nội dung ...