㈠ 如何在 Ubuntu 上使用 pm2 和 Nginx 部署 Node.js 應用
pm2 是一個 Node.js 應用的進程管理器,它可以讓你的應用程序保持運行,還有一個內建的負載均衡器。它非常簡單而且強大,你可以零間斷重啟或重新載入你的 node 應用,它也允許你為你的 node 應用創建集群。
在這篇博文中,我會向你展示如何安裝和配置 pm2 用於這個簡單的 'Express' 應用,然後配置 Nginx 作為運行在 pm2 下的 node 應用的反向代理。
前提:
Ubuntu 16.04 - 64bit
Root 許可權
第一步 - 安裝 Node.js LTS
在這篇指南中,我們會從零開始我們的實驗。首先,我們需要在伺服器上安裝 Node.js。我會使用 Nodejs LTS 6.x 版本,它能從 nodesource 倉庫中安裝。
從 Ubuntu 倉庫安裝python-software-properties軟體包並添加 「nodesource」 Nodejs 倉庫。
sudo apt-get install -y python-software-properties
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
安裝最新版本的 Nodejs LTS:
sudo apt-get install -y nodejs
安裝完成後,查看 node 和 npm 版本。
node -v
npm -v
nodejs 在 pm2 下開機自啟動
Node 應用在 pm2 中運行並使用 Nginx 作為反向代理。
㈡ nodejs怎麼部署到騰訊雲伺服器上
先安裝一個nodejs。
看你伺服器操作系統了。
㈢ 怎麼用nodejs搭建web伺服器
創建一個記事本將下面的代碼復制進去
保存為app.js
var
http
=
require('http');//引入響應頭
http.createServer(function
(request,
response)
{
//參數一是與請求相皮畢關的對象
/賀好/參數二是與響應有關的對象
//
發送
HTTP
頭部
//
HTTP
狀態值:
200
:
OK
//
內容類型:
text/plain
response.writeHead(200,
{'Content-Type':
'text/plain'});
//
發送響應數據
"Hello
World"
response.end('Hello
World\燃拍芹n');
}).listen(8888);//監聽埠
//
終端列印如下信息
console.log('Server
running
at
http://127.0.0.1:8888/');
以下以我的電腦上的路徑為准
我是將app.js
保存在E:\NODE這個文件夾下面
接下來就是運行了打開cmd
第一步:E:
第二步:cd
NODE
//CD是
命令行改變目錄的命令
第三步:node
app.js
這個是運行效果接下來訪問localhost:8888就可以看到hollo
word
建議多看一些node的模塊
比如
express和session
mysql之類的模塊
㈣ 伺服器部署NODE項目
1.1 已經在伺服器搭建好NODE的環境,若無,可以參考我 前一篇博客 進行搭建。由於此篇博客是在 前一篇博客 基礎上進行擴展,如有不明之處,可先看下前一篇博客。
1.2 已經寫好了一個NODE項目
2.1 因為我是用PM2進行進程管理的,棚弊所以先在自己的項目根目錄下面寫好對應伺服器的PM2執行文件:
2.2 在項目根目錄下新建一個logs文件夾
2.3 在伺服器根目錄下把自己的項目拉取下來:
2.4 開放伺服器訪問安全組
假設你開啟項目的埠是3001,打開網頁的時候發現遲鍵打不開訪問網址的埠,需要開放伺服器訪問安全組。
2.4.1 到伺服器開通安全組
2.4.2 伺服器也要開通設置防火牆
CentOS 7.0默認使用的是firewall作為防火牆,這里改為iptables防火牆。
1.思路
現在如果你的node項目是在3001埠上跑的話,那麼你打開網頁的地址應該是 http://ip:3000/ ,但是這樣的域名不太好看,上線的時候如果可以直接 http://ip/ 這樣訪問,就好看多了,而且也更加安全,默認開放80埠給外部訪問。
2.配置
如果已經配好nginx,則在/etc/nginx/conf.d/下創建一個node反向代理:
然後回到/etc/nginx/下,找到nginx.conf文件:
然後輸入 nginx -t -c /etc/nginx/nginx.conf
查看一下是否配置出錯,沒有錯誤的話,重啟nginx: service nginx restart .
大功告成,去網頁看一下,可以通過 http://ip/ 進行鏈旦族訪問了。
㈤ nodejs怎麼部署到伺服器上
伺服器推薦用nginx,配置簡單,性能強悍。
nginx可以使用代理訪問後端的Node.js應用伺服器。
配置方法:
1)在配置文件http段內容添加後端伺服器:
http {
#添加後端伺服器,和nginx負載均衡配置一樣
upstream nodejs {
server 127.0.0.1:8080;
}
...
}
2)給應用添加虛擬主機:
server {
listen 80;
server_nameIP
location / {
proxy_pass nodejs;#名字和前面的對應,將所有的請求轉發給後端的node
}
access_log logs/nodejs.access.log main;#如果需要日誌的話
}
推薦將靜態文件如css、js和圖片和應用伺服器分開。
㈥ node 項目打包部署至伺服器
例: 要發凱祥布的項目為 /code/project
原因: npm 版本過低. yum 倉庫中的 nodejs 版本相比主流版本差太多了,經常會遇到各種莫名其妙的問並前題
解決: 直接卸載絕孫清,改用源碼安裝的方式
㈦ node 怎麼在伺服器上運行
首先安裝node.js環境,windows可以直接下載安裝包,下一步到底就可以了~~linux可以使用不同發行版的包管理器(但通常版本都不是最新的),使用最新版本可以從官網下載壓縮包,然後解壓就可以了,運行node.js代碼只需要在命令行中運行node XXX.js(xxx.js為你的代碼文件,如果沒有將node添加到環境變數,則需要進入node的目錄在執行上述命令)~ok 貌似就是這樣了~
㈧ 如何在 Ubuntu 上使用 pm2 和 Nginx 部署 Node.js 應用
Ubuntu 16.04 - 64bit
Root 許可權
第一步 - 安裝 Node.js LTS
在這篇指南中,我們會從零開始我們的實驗。首先,我們需要在伺服器上安裝 Node.js。我會使用 Nodejs LTS 6.x 版本,它能從 nodesource 倉庫中安裝。
從 Ubuntu 倉庫安裝 python-software-properties 軟體包並添加 「nodesource」 Nodejs 倉庫。
sudo apt-get install -y python-software-properties
curl -sL /setup_6.x | sudo -E bash -
安裝最新版本的 Nodejs LTS:
sudo apt-get install -y nodejs
安裝完成後,查看 node 和 npm 版本。
node -v
npm -v
第二步 - 生成 Express 示例 App
我會使用 express-generator 軟體包生成亂數的簡單 web 應用框架進行示例安裝。express-generator 可以使用 npm 命令安裝。
用 npm安裝 express-generator:
npm install express-generator -g
-g : 在系統內部安裝軟體包。
我會以普通用戶運行應用程序,而不是 root 或者超級用戶。我們首先需要創建一個新的用戶。
創建一個名為 yume 的用戶:
useradd -m -s /bin/bash yume
passwd yume
使用 su 命令登錄到新用戶:
su - yume
下一步,用 express 命令生成一個新的簡單 web 應用程序:
express hakase-app
命令會創建新項目目錄 hakase-app。
進入到項目目錄並安裝應用需要的所有依賴。
cd hakase-app
npm install
然後用下面的命令測試並啟動一個新的簡單應用程序:
DEBUG=myapp:* npm start
默認情況下,我們的 express 應用會運行在 3000 埠。現在訪問伺服器的 IP 地址:192.168.33.10:3000 :
這個簡單 web 應用框架現在以 'yume' 用戶運行在 3000 埠。
第三步 - 安裝 pm2
pm2 是一個 node 軟體包,可以使用 npm 命令安裝。(用 root 許可權,如果你仍然以 yume 用戶登錄,那麼運行命令 exit 再次成為 root 用戶):
npm install pm2 -g
現在我們可以為我們的 web 應用使用 pm2 了。
進入應用目錄 hakase-app:
su - yume
cd ~/hakase-app/
這里你可以看到一個名為 package.json 的文件,用 cat 命令顯示它的內容。
cat package.json
你可以看到 start 行有一個 nodejs 用於啟動 express 應用的命令。我們會和 pm2 進程管理器一起使用這個命令。
像下面這樣使用 pm2 命令運行 express 應用:
pm2 start ./bin/www
現在你可以看到像下面這樣的結果:
我們的 express 應用正在 pm2 中運行,名稱為 www,id 為 0。你可以用 show 選項 show nodeid|name 獲取更多 pm2 下運行的應用的信息。
pm2 show www
如果你想看州備我們應用的日誌,你可以使用 logs 選項。它包括訪問和錯誤日誌,你還可以看到應用程序的 HTTP 狀態。
pm2 logs www
你可以看到我們的冊陪毀程序正在運行。現在,讓我們來讓它開機自啟動。
pm2 startup systemd
systemd: Ubuntu 16 使用的是 systemd。
你會看到要用 root 用戶運行命令的信息。使用 exit 命令回到 root 用戶然後運行命令。
sudo env PATH=$PATH:/usr/bin /usr/lib/node_moles/pm2/bin/pm2 startup systemd -u yume --hp /home/yume
它會為啟動應用程序生成 systemd 配置文件。當你重啟伺服器的時候,應用程序就會自動運行。
第四步 - 安裝和配置 Nginx 作為反向代理
在這篇指南中,我們會使用 Nginx 作為 node 應用的反向代理。Ubuntu 倉庫中有 Nginx,用 apt 命令安裝它:
sudo apt-get install -y nginx
下一步,進入到 sites-available 目錄並創建新的虛擬主機配置文件。
cd /etc/nginx/sites-available/
vim hakase-app
粘貼下面的配置:
upstream hakase-app {
# Nodejs app upstream
server 127.0.0.1:3000;
keepalive 64;
}
# Server on port 80
server {
listen 80;
server_name hakase-node.co;
root /home/yume/hakase-app;
location / {
# Proxy_pass configuration
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_max_temp_file_size 0;
proxy_pass htp://hakase-app/;
proxy_redirect off;
proxy_read_timeout 240s;
}
}
保存文件並退出 vim。
在配置中:
node 應用使用域名 hakase-node.co 運行。
所有來自 nginx 的流量都會被轉發到運行在 3000 埠的 node app。
測試 Nginx 配置確保沒有錯誤。
nginx -t
啟用 Nginx 並使其開機自啟動。
systemctl start nginx
systemctl enable nginx
第五步 - 測試
打開你的 web 瀏覽器並訪問域名(我的是):ht tp://hakase-app.co 。
你可以看到 express 應用正在 Nginx web 伺服器中運行。
下一步,重啟你的伺服器,確保你的 node app 能開機自啟動:
pm2 save
sudo reboot
如果你再次登錄到了你的伺服器,檢查 node app 進程。以 yume 用戶運行下面的命令。
su - yume
pm2 status www
㈨ 如何在伺服器上搭建nodejs
先確認下系統環境合不合要求
Python -V(確認python版本大於2.6)
訪問http://nodejs.org/download/下載需要的Node.js版本(wget
http://nodejs.org/dist/v0.10.26/node-v0.10.29.tar.gz )
解壓 tar zxvf node-v0.10.26-linux-x64.tar.gz
進入目錄 cd node-v0.10.26-linux-x64
./configure --prefix=/home/work/setups/node-v0.10.26
make
sudo make install
添加到系統環境 echo "export PATH=$PATH:/home/work/setups/node-v0.10.26/bin">>
~/.bash_profile
. ~/.bash_profile執行該文件更新$PATH變數
###安裝Express
sudo npm install express
-gd g參數:把express安裝到NodeJS的lib目錄d參數:同時安裝依賴模塊包
sudo npm install forever -gd
(異常情況:
如果遇到npm 找不到的情況 確認sudo node -v是否找不到 找不到的話:需要added /usr/local/bin to secure_path in /etc/sudoers :
sudo visudo
把 Defaults secure_path =
/sbin:/bin:/usr/sbin:/usr/bin 這行 改為 Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin然後:x保存退出
如果遇到
npm ERR! Error: Hostname/IP doesn't match certificate's altnames
執行 npm config set strict-ssl false
如果遇到 npm ERR! registry error parsing json
npm cache clean
執行 npm config set registry http://registry.npmjs.eu/
)
###部署forever
$ npm install -g forever
啟動
NODE_ENV=pro LANG='zh' /usr/local/bin/foreverstart-o
/home/work/log/node_out.log-e /home/work/log/node_err.log /home/work/webroot/index.js
NODE_ENV=pro 環境變數 pro為生產環境(程序中可以指定)
LANG 環境變數 指定默認語言
node_out.log 輸出日誌 注意路徑別抄成我的了
node_err.log 錯誤日誌
index.js 啟動文件
㈩ 如何在centos6上部署nodejs服務
1.首先你要有一台伺服器:
系統:Linux (本人選用的是centos6,其它機器不成功不要怪我)
配置需求:至少是256M內存,(前輩們的血淚經驗)
其它:隨意
2.操作流程:
1,安裝vncviewer遠程可視化桌面(或者跳過這步,用FileZilla傳文件什麼的)2,安裝nodejs環境3,安裝mongodb3.24,安裝git(可以不安裝)
3.安裝vncviewer桌面:
本地的直接下載客戶端,支持所有電腦系統和手機端
使用putty鏈接遠程伺服器,然後執行以下安裝腳本,
服務端一鍵安裝腳本如下(看得懂的可以另行修改):
[VNC安裝教程][1] https://segmentfault.com/a/1190000009666125
如果安裝斷開沒關系,重新輸入腳本,會繼續安裝,
安裝成功後會提示輸入兩次密碼,**記住這里的密碼**
4.安裝nodejs環境:
第1步 – 添加Node.js的Yum庫
yum install -y gcc-c++ make
curl -sL https://rpm.nodesource.com/setup_6.x | sudo -E bash -
第2步 – 安裝Node.js和NPM
yum install nodejs
第3步 – 檢查Node.js和NPM版本
$ node -vv6.2.0$ npm -v3.8.9
5.安裝mongodb資料庫
注意:這里需要一些Linux和VIM命令操作,不懂的可以谷歌Linux vim
*在終端執行* vi /etc/yum.repos.d/mongodb-org-3.2.repo 命令(創建或打開該文件)*在mongodb-org-3.2.repo中輸入*[mongodb-org-3.2] name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.2/x86_64/ gpgcheck=0
enabled=1
*用yum安裝mongodb(如果沒有寫repo文件則不能用yum安裝)*
sudo yum install -y mongodb-org*啟動mongodb服務*
sudo service mongod start
6.安裝git
yum -y install zlib-devel curl-devel openssl-devel perl cpio expat-devel gettext-devel openssl zlib autoconf tk perl-ExtUtils-MakeMaker
獲取最新版 Git 源碼包
從 https://github.com/git/git/releases 下載最新版的 zip 包或者 tar.gz 並解壓:
以 tar.gz 格式為例(在網頁的 tar.gz 上右鍵復制下載鏈接即可):
wget https://github.com/git/git/archive/v2.4.0.tar.gz
tar zxvf v2.4.0.tar.gz
會得到一個 git-2.4.0 的目錄(版本號與下載的一致),然後進入這個目錄:cd git-2.4.0 編譯安裝
autoconf
./configuremakemake install
以上4步請一步步來,以免出現錯誤不好找原因。
然後修改 /etc/ld.so.conf 文件,在最後加入一行:
/usr/local/lib
保存並關閉。
這就安裝好了,看看版本:
git --versiongit version 2.4.0如果安裝後報以下錯誤:
bash: /usr/bin/git: 沒有那個文件或目錄
那麼請編輯 /etc/profile 在最後加入一行:
export PATH=$PATH:/usr/local/bin
然後重新開窗口就好了,或者執行命令 source /etc/profile 後就好了。