溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Ubuntu中怎么利用pm2和Nginx部署一個Node.js應(yīng)用

發(fā)布時間:2021-07-21 09:55:20 來源:億速云 閱讀:146 作者:Leah 欄目:系統(tǒng)運維

這篇文章將為大家詳細(xì)講解有關(guān)Ubuntu中怎么利用pm2和Nginx部署一個Node.js應(yīng)用,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

***步 - 安裝 Node.js LTS

在這篇指南中,我們會從零開始我們的實驗。首先,我們需要在服務(wù)器上安裝 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

Ubuntu中怎么利用pm2和Nginx部署一個Node.js應(yīng)用

檢查 node.js 版本

第二步 - 生成 Express 示例 App

我會使用 express-generator 軟件包生成的簡單 web 應(yīng)用框架進(jìn)行示例安裝。express-generator 可以使用 npm  命令安裝。

用 npm安裝 express-generator:

npm install express-generator -g

-g : 在系統(tǒng)內(nèi)部安裝軟件包。

我會以普通用戶運行應(yīng)用程序,而不是 root 或者超級用戶。我們首先需要創(chuàng)建一個新的用戶。

創(chuàng)建一個名為 yume 的用戶:

useradd -m -s /bin/bash yume passwd yume

使用 su 命令登錄到新用戶:

su - yume

下一步,用 express 命令生成一個新的簡單 web 應(yīng)用程序:

express hakase-app

命令會創(chuàng)建新項目目錄 hakase-app。

Ubuntu中怎么利用pm2和Nginx部署一個Node.js應(yīng)用

用 express-generator 生成應(yīng)用框架

進(jìn)入到項目目錄并安裝應(yīng)用需要的所有依賴。

cd hakase-app npm install

然后用下面的命令測試并啟動一個新的簡單應(yīng)用程序:

DEBUG=myapp:* npm start

默認(rèn)情況下,我們的 express 應(yīng)用會運行在 3000 端口?,F(xiàn)在訪問服務(wù)器的 IP 地址:192.168.33.10:3000 :

Ubuntu中怎么利用pm2和Nginx部署一個Node.js應(yīng)用

express nodejs 運行在 3000 端口

這個簡單 web 應(yīng)用框架現(xiàn)在以 'yume' 用戶運行在 3000 端口。

第三步 - 安裝 pm2

pm2 是一個 node 軟件包,可以使用 npm 命令安裝。(用 root 權(quán)限,如果你仍然以 yume 用戶登錄,那么運行命令 exit 再次成為  root 用戶):

npm install pm2 -g

現(xiàn)在我們可以為我們的 web 應(yīng)用使用 pm2 了。

進(jìn)入應(yīng)用目錄 hakase-app:

su - yume cd ~/hakase-app/

這里你可以看到一個名為 package.json 的文件,用 cat 命令顯示它的內(nèi)容。

cat package.json

Ubuntu中怎么利用pm2和Nginx部署一個Node.js應(yīng)用

配置 express nodejs 服務(wù)

你可以看到 start 行有一個 nodejs 用于啟動 express 應(yīng)用的命令。我們會和 pm2 進(jìn)程管理器一起使用這個命令。

像下面這樣使用 pm2 命令運行 express 應(yīng)用:

pm2 start ./bin/www

現(xiàn)在你可以看到像下面這樣的結(jié)果:

Ubuntu中怎么利用pm2和Nginx部署一個Node.js應(yīng)用

使用 pm2 運行 nodejs app

我們的 express 應(yīng)用正在 pm2 中運行,名稱為 www,id 為 0。你可以用 show 選項 show nodeid|name 獲取更多  pm2 下運行的應(yīng)用的信息。

pm2 show www

Ubuntu中怎么利用pm2和Nginx部署一個Node.js應(yīng)用 

pm2 服務(wù)狀態(tài)

如果你想看我們應(yīng)用的日志,你可以使用 logs 選項。它包括訪問和錯誤日志,你還可以看到應(yīng)用程序的 HTTP 狀態(tài)。

pm2 logs www

Ubuntu中怎么利用pm2和Nginx部署一個Node.js應(yīng)用

pm2 服務(wù)日志

你可以看到我們的程序正在運行?,F(xiàn)在,讓我們來讓它開機自啟動。

pm2 startup systemd
  • systemd: Ubuntu 16 使用的是 systemd。

你會看到要用 root 用戶運行命令的信息。使用 exit 命令回到 root 用戶然后運行命令。

sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u yume --hp /home/yume

它會為啟動應(yīng)用程序生成 systemd 配置文件。當(dāng)你重啟服務(wù)器的時候,應(yīng)用程序就會自動運行。

Ubuntu中怎么利用pm2和Nginx部署一個Node.js應(yīng)用

pm2 添加服務(wù)到開機自啟動

第四步 - 安裝和配置 Nginx 作為反向代理

在這篇指南中,我們會使用 Nginx 作為 node 應(yīng)用的反向代理。Ubuntu 倉庫中有 Nginx,用 apt 命令安裝它:

sudo apt-get install -y nginx

下一步,進(jìn)入到 sites-available 目錄并創(chuàng)建新的虛擬主機配置文件。

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 http://hakase-app/;         proxy_redirect off;         proxy_read_timeout 240s;     } }

保存文件并退出 vim。

在配置中:

  • node 應(yīng)用使用域名 hakase-node.co 運行。

  • 所有來自 nginx 的流量都會被轉(zhuǎn)發(fā)到運行在 3000 端口的 node app。

測試 Nginx 配置確保沒有錯誤。

nginx -t

啟用 Nginx 并使其開機自啟動。

systemctl start nginx systemctl enable nginx

第五步 - 測試

打開你的 web 瀏覽器并訪問域名(我的是):http://hakase-app.co 。

你可以看到 express 應(yīng)用正在 Nginx web 服務(wù)器中運行。

Ubuntu中怎么利用pm2和Nginx部署一個Node.js應(yīng)用

Nodejs app 在 pm2 和 Nginx 中運行

下一步,重啟你的服務(wù)器,確保你的 node app 能開機自啟動:

pm2 save sudo reboot

如果你再次登錄到了你的服務(wù)器,檢查 node app 進(jìn)程。以 yume 用戶運行下面的命令。

su - yume pm2 status www

Ubuntu中怎么利用pm2和Nginx部署一個Node.js應(yīng)用

關(guān)于Ubuntu中怎么利用pm2和Nginx部署一個Node.js應(yīng)用就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI