① nodejs 如何部署到伺服器上
跟你在本地開發是相同的。
1、安裝指定版本的node.js(伺服器基本軟體的安裝)
2、上傳代碼到伺服器(可以通過ftp、ssh、git等方式)
3、安裝項目依賴的模塊
>npminstall
4、啟動應用(也可以通過forever、pm2等工具進行管理)
>node./www/bin
當然,如果你深諳運維之道,可以直接通過docker等方案將運行環境容容器化。
基本的linux運維知識的話可以參考linuxprobe.com。
還有幾個需要注意的點:
1、運行許可權:注意做好應用之間的隔離(使用低許可權用戶、文件系統隔離等),避免應用崩潰導致系統宕機等風險
2、80埠:通過nginx等進行反向代理,應用本身佔用1024後的埠(無需root許可權)
② 怎樣用nodejs搭建伺服器
新建一個文件:http.js
varexpress=require('express');
varapp=express();
varserver=require('http').createServer(app);
app.use('/',express.static('./html'));//這里的./html是你的站點根目錄。所有index.html和頁面放這里
//8080是埠號。
server.listen(8080,'localhost',function(){
console.log('Exampleapprunningathttp://%s:%s',server.address().address,server.address().port);
});
保存http.js,然後進入命令行。
然後執行node ./http.js 開啟服務。
開啟成功後,在瀏覽器輸入127.0.0.1:8080就可以訪問。
如果報類似can not found express的話。先全局安裝express 。安裝方法npminstallexpress-g。
③ 怎麼連接nodejs伺服器
前面已經學習了WebSocket API,包括事件、方法和屬性。詳情:WebSocket(二)--APIWebSocket是基於事件驅動,支持全雙工通信。下面通過三個簡單例子體驗一下。
簡單開始
1.安裝node。/
2.安裝ws模塊
ws:是nodejs的一個WebSocket庫,可以用來創建服務。
3.server.js
在項目裡面新建一個server.js,創建服務,指定8181埠,將收到的消息log出來。
//建立連接
var ws = new WebSocket("ws://localhost:8181"); var nickname = "";
ws.onopen = function (e) {
console.log('Connection to server opened');
} //顯示
function appendLog(type, nickname, message) { if (typeof message == "undefined") return; var messages = document.getElementById('messages'); var messageElem = document.createElement("li"); var preface_label; if (type === 'notification') {
preface_label = "<span class="label label-info">*</span>";
} else if (type == 'nick_update') {
preface_label = "<span class="label label-warning">*</span>";
} else {
preface_label = "<span class="label label-success">"
+ nickname + "</span>";
} var message_text = "<h2>" + preface_label + " "
+ message + "</h2>";
messageElem.innerHTML = message_text;
messages.appendChild(messageElem);
} //收到消息處理
ws.onmessage = function (e) { var data = JSON.parse(e.data);
nickname = data.nickname;
appendLog(data.type, data.nickname, data.message);
console.log("ID: [%s] = %s", data.id, data.message);
}
ws.onclose = function (e) {
appendLog("Connection closed");
console.log("Connection closed");
} //發送消息
function sendMessage() { var messageField = document.getElementById('message'); if (ws.readyState === WebSocket.OPEN) {
ws.send(messageField.value);
}
messageField.value = '';
messageField.focus();
} //修改名稱
function changName() { var name = $("#name").val(); if (ws.readyState === WebSocket.OPEN) {
ws.send("/nick " + name);
}
}
運行結果:
頁面關閉之後,連接馬上斷開。
這種實時響應的體驗簡直不能太爽,代碼也清爽了,前端體驗也更好,客戶端不用一直發請求,服務端不用等著被輪詢。
小結:上面例子的代碼都很好理解,接下來學習WebSocket協議。
④ 伺服器部署nodejs的幾種方法
由於自身特性的原因。node程序必須保持開啟才能訪問網站,而當我們關閉SSH時這些進程都會被停止。有以下3種方法可以避免這個問題。
screen
Screen,虛擬終端管理器。可以在後台管理終端界面,防止SSH斷開以後任務停止運行。
安裝方法:
sudo apt-get screen(以ubuntu為例)
使用方法:
使用screen -S [任意id]命令進入一個名為id的終端,此時便可以隨意執行操作
例如執行sudo apt-get upgrade,或者其它消耗時間比較長的工作,像編譯內核等等。
按ctrl+a後再按d保存虛擬終端,系統提示deatached即為保存成功
接下來可以斷開SSH終端,虛擬終端仍會執行。
訪問已經創建好的終端
screen -ls列出已經創建的正在後台運行的終端
screen -r xxx進入終端
例如 screen -r terminal1
徹底退出
screen -r進入終端後執行exit即可完全退出
PM2
pm2 是一個帶有負載均衡功能的Node應用的進程管理器.當你要把你的獨立代碼利用全部的伺服器上的所有CPU,並保證進程永遠都活著
安裝方法
npm install -g pm2
使用方法
啟動應用pm2 start -watch app.js
重啟應用pm2 restart app.js
顯示進程列表pm2 list
停止某應用pm2 stop app_name|app_id
停止所有應用pm2 stop all
小白方案
個人目前用的是寶塔Linux面板,可以說是把Linux的各種操作都已比較簡單的形式展現出來了,不需要什麼Linux知識就能掌握寶塔官網了解一下
⑤ 如何用命令行開啟nodejs搭建web伺服器
首先,需要安裝nodejs,這個可以去官網下載,目前我本地安裝的v0.12版本。
安裝完成後可以通過命令行測試安裝是否成功,輸入:node -v,應該會顯示當前安裝node版本號。
本文中用到的模塊,都是nodejs核心模塊,不需要從外部下載,如果有需要,可以使用以下命令安裝:npm install xxx。
開始
下一步,新建js文件,可以命名為server.js,代碼如下:
var http = require('http');
var url = require('url');
var path = require('path');
var fs = require('fs');
var dir, arg = process.argv[2] || ''; // 命令行第三個參數,用來接收目錄,可為空,相對當前server.js文件的目錄名稱
// 比如使用命令 node server debug,意思就是debug文件夾與server.js文件同級
// 且你想以debug文件夾啟動web服務
http.createServer(function (req, res) {
var pathname = __dirname + url.parse(req.url).pathname;