Chạy node.js trên host?



  • mình muốn đưa các code của mình lên 1 host nhưng chưa biết sẽ phải chạy những gì,bạn nào giúp mình được ko? chạy ở localhost thì ok hết rồi


  • Sailor

    Ban thu trang heroku.com di. Cho minh deploy mien phi len host, host no quan ly.



  • Mình hướng dẫn với dự án dùng express.
    Dùng host Heroku và công cụ toolbelt (cả 2 đều free)

    1. Đăng ký một tài khoản trên Heroku.
    2. Cài đặt toolbelt trên máy tính (hỗ trợ cho việc tạo và đẩy project lên host).

    Tiếp theo.

    • Tạo một file tên là: Procfile ở thư mục gốc của project (Không có đuôi mở rộng).

    • Trong Procfile bạn thêm đoạn code sau: web: node app.js

    • Để chắc chắn rằng Heroku sử dụng đúng phiên bản của node thì bạn mở file package.json và thêm đoạn code sau:
      "engines": {
      "node": "0.8.x",
      "npm": "1.2.x"
      }

    • Sau đó bạn có thể sử dụng 2 lệnh sau trong command line để tạo một site trên Heroku và publish nó:
      heroku apps:create
      git push heroku master

    • Khi xong thì có thể vào Heroku với tài khoản của bạn và xem các hướng dẫn để mở site (đường dẫn site khá là dài và khó nhớ).

    Mình sẽ cập nhật thêm hình ảnh trực quan nếu bạn chưa làm được (do hiện tại đang ngồi máy công ty nên cũng không có resource).



  • Mình dùng digitalocean thấy cũng khá đơn giản.

    https://www.digitalocean.com/features/one-click-apps/

    Có sẵn image của Node.js hoặc MEAN.js cho bạn lựa chọn. Sau khi tạo xong droplet bạn chỉ cần git pull source code của bạn về và bắt đầu node server thôi :+1:



  • @loser Bạn có thể hướng dẫn thêm hình ảnh giúp mình không, mình đã thứ nhưng có vẻ không được, Thanks bạn



  • @loser Mình chạy được, nhưng hình như host này không hỗ trợ mysql nhỉ



  • CHIPS có hỗ trợ hosting Node.js
    https://chips.vn/hosting-ssl/hosting-nodejs-app.html
    Liên lạc 0966966247 có người tư vấn nhé.
    alt text



  • @Dương-Thái-Cường Cái này không hổ trợ mysql như có support postgreSQL đó bạn. Xem như cũng khá giá trị. 5 app, 5 csdl postgreSQL, mỗi CSDL free 10.000 rows. Chắc mình cũng nên mua cái gói 7$ 1 tháng cho người ta có khí thế free...



  • Bài này cũng khá cũ rồi nhỉ. Nhưng mình không muốn tạo thêm chủ để mới, với cả hướng dẫn cũng chỉ nhằm mục đích cho các bạn test thôi, nên cũng chả quan trọng để tạo topic mơi. :D
    Để cài và chạy nodejs lên hosting thì trước hết bạn phải có quyền truy cập ssh đối với hosting. Và mình sẽ cài nodejs thông qua nvm.
    Bạn truy cập vào hosting với ssh console (Mình thường dùng ZOC Terminal).
    Chạy lệnh sau để cài đặt nvm:

    wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
    

    Tiếp theo bạn cần tắt console và kết nối lại SSH để có thể dùng nvm.
    Kiểm tra nvm cài đặt thành công với lệnh:

    command -v nvm 
    

    nếu in ra nvm thì đã cài thành công. Tiếp theo các bạn cài nodejs bằng lệnh sau:

    nvm install node
    

    Bạn có thể kiểm tra nodejs và npm đã được cài đặt như thông thường với 2 lệnh: node -v và npm -v.
    Tiếp theo, vào thư mục gốc để chứa mã nguồn web, thường thì là public_html

    cd public_html
    

    Tại đây các bạn có thể up code của các bạn lên như bình thường. Còn mình sẽ tạo một file mã nguồn đơn giản với ví dụ kinh điển là in ra trình duyệt dòng chữ Hello world. Nội dung file `app.js của mình:

    var http = require("http");
    
    http.createServer(function (request, response) {
       // Send the HTTP header 
       // HTTP Status: 200 : OK
       // Content Type: text/plain
       response.writeHead(200, {'Content-Type': 'text/plain'});
       
       // Send the response body as "Hello World"
       response.end('Hello World\n');
    }).listen(65500);
    
    // Console will print the message
    console.log('Server running!/');
    

    Sau đó tạo file .htaccess để có thể truy cập từ port 80 của domain về port của node server:

    RewriteEngine On
    
    RewriteRule ^$ http://127.0.0.1:65500/ [P,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ http://127.0.0.1:65500/$1 [P,L]
    

    Các bạn vào lại SSH console để chạy node server:

    node app.js
    

    Truy cập vào domain và xem thành quả nhé :D
    Các bạn còn máu me nữa có thể cài thêm cả forever và nodemon để server tiếp tục chạy kể cả khi tắt SSH console và tự khởi động lại khi code có thay đổi nhé.

    npm install forever nodemon -g
    
    forever start --minUptime 1000 --spinSleepTime 1000 --killSignal=SIGTERM -c "nodemon --exitcrash" app.js
    

    Mình không biết trên share host có dùng được cách này không, vì ip của share host là ip share chung, mình cũng chưa thử, chỉ mới thử trên business host vì nó có IP riêng và quyền giao tiếp SSH.
    Thường thì Share host ít có quyền giao tiếp với SSH, còn Business host thì giá thấp lắm cũng phải từ 150k trở lên, đăt hơn dùng VPS. Nên mình nghĩ cái này vọc vạch thì ngon chứ để dùng thì chắc VPS hoặc Platform tốt hơn.


Log in to reply