成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在Ubuntu上使用pm2和Nginx部署Node.js應用

系統 Linux 系統運維
本文主要展示如何安裝和配置 pm2 用于這個簡單的 'Express' 應用,然后配置 Nginx 作為運行在 pm2 下的 node 應用的反向代理。

[[190742]]

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 倉庫。

  1. sudo apt-get install -y python-software-properties  
  2. curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - 

安裝***版本的 Nodejs LTS:

  1. sudo apt-get install -y nodejs 

安裝完成后,查看 node 和 npm 版本。

  1. node -v 
  2. npm -v 

檢查 node.js 版本

檢查 node.js 版本

第二步 - 生成 Express 示例 App

我會使用 express-generator 軟件包生成的簡單 web 應用框架進行示例安裝。express-generator 可以使用 npm 命令安裝。

用 npm安裝 express-generator:

  1. npm install express-generator -g 

-g : 在系統內部安裝軟件包。

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

創建一個名為 yume 的用戶:

  1. useradd -m -s /bin/bash yume 
  2. passwd yume 

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

  1. su - yume 

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

  1. express hakase-app 

命令會創建新項目目錄 hakase-app。 

用 express-generator 生成應用框架 

用 express-generator 生成應用框架

進入到項目目錄并安裝應用需要的所有依賴。

  1. cd hakase-app 
  2. npm install 

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

  1. DEBUG=myapp:* npm start 

默認情況下,我們的 express 應用會運行在 3000 端口。現在訪問服務器的 IP 地址:192.168.33.10:3000 :

express nodejs 運行在 3000 端口 

express nodejs 運行在 3000 端口

這個簡單 web 應用框架現在以 'yume' 用戶運行在 3000 端口。

第三步 - 安裝 pm2

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

  1. npm install pm2 -g 

現在我們可以為我們的 web 應用使用 pm2 了。

進入應用目錄 hakase-app:

  1. su - yume 
  2. cd ~/hakase-app/ 

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

  1. cat package.json 

配置 express nodejs 服務 

配置 express nodejs 服務

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

像下面這樣使用 pm2 命令運行 express 應用:

  1. pm2 start ./bin/www 

現在你可以看到像下面這樣的結果:

使用 pm2 運行 nodejs app 

使用 pm2 運行 nodejs app

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

  1. pm2 show www 

pm2 服務狀態  

pm2 服務狀態

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

  1. pm2 logs www 

pm2 服務日志 

pm2 服務日志

你可以看到我們的程序正在運行。現在,讓我們來讓它開機自啟動。

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

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

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

它會為啟動應用程序生成 systemd 配置文件。當你重啟服務器的時候,應用程序就會自動運行。

pm2 添加服務到開機自啟動 

pm2 添加服務到開機自啟動

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

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

  1. sudo apt-get install -y nginx 

下一步,進入到 sites-available 目錄并創建新的虛擬主機配置文件。

  1. cd /etc/nginx/sites-available/ 
  2. vim hakase-app 

粘貼下面的配置:

  1. upstream hakase-app { 
  2.     # Nodejs app upstream 
  3.     server 127.0.0.1:3000; 
  4.     keepalive 64; 
  5. # Server on port 80 
  6. server { 
  7.     listen 80; 
  8.     server_name hakase-node.co; 
  9.     root /home/yume/hakase-app; 
  10.     location / { 
  11.         # Proxy_pass configuration 
  12.         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
  13.         proxy_set_header Host $http_host; 
  14.         proxy_set_header X-NginX-Proxy true
  15.         proxy_http_version 1.1; 
  16.         proxy_set_header Upgrade $http_upgrade; 
  17.         proxy_set_header Connection "upgrade"
  18.         proxy_max_temp_file_size 0; 
  19.         proxy_pass http://hakase-app/; 
  20.         proxy_redirect off
  21.         proxy_read_timeout 240s; 
  22.     } 

保存文件并退出 vim。

在配置中:

  • node 應用使用域名 hakase-node.co 運行。
  • 所有來自 nginx 的流量都會被轉發到運行在 3000 端口的 node app。

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

  1. nginx -t 

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

  1. systemctl start nginx 
  2. systemctl enable nginx 

第五步 - 測試

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

你可以看到 express 應用正在 Nginx web 服務器中運行。

Nodejs app 在 pm2 和 Nginx 中運行 

Nodejs app 在 pm2 和 Nginx 中運行

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

  1. pm2 save 
  2. sudo reboot 

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

  1. su - yume 
  2. pm2 status www 

nodejs 在 pm2 下開機自啟動 

nodejs 在 pm2 下開機自啟動

Node 應用在 pm2 中運行并使用 Nginx 作為反向代理。

鏈接

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2019-12-10 10:23:57

Node.jsCluster前端

2022-11-17 09:52:12

RHEL 9Node.js

2021-07-30 11:20:53

JavaScriptNode.jsWeb Develop

2020-08-05 08:31:51

SSL TLSNode.js

2021-07-03 17:43:03

Node.jsNode變量

2021-08-20 16:05:28

JavaScript node.js 應用安全

2013-03-28 14:54:36

2021-10-25 09:00:37

Node.jsJS前端

2021-06-15 15:03:21

MongoDBNode.jsCRUD

2024-12-20 14:03:33

2017-04-19 22:30:26

LinuxNginxGunicorn

2020-09-04 15:06:04

Docker容器化Node.js

2011-09-09 14:23:13

Node.js

2018-08-23 16:18:59

2017-03-02 09:40:28

UbuntuCentOSNginx

2022-08-22 07:26:32

Node.js微服務架構

2014-07-11 14:16:15

AbsurdJSExpress

2021-12-15 11:46:46

HTTP2Nginx

2019-09-11 14:30:45

UbuntuLinuxR語言

2013-01-24 13:26:09

NginxNode.js高負載網絡
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产一区在线视频 | 九色国产 | 久久草在线视频 | 中文字幕一区二区三区日韩精品 | 天天干狠狠 | 午夜免费福利电影 | 国产资源在线播放 | 99久久精品免费看国产四区 | 国产一级特黄视频 | www.久久99 | 免费精品在线视频 | 久久久久久国产精品免费免费 | yeyeav| 黄色一级大片在线免费看产 | 综合激情久久 | 国产亚洲精品久久久久久豆腐 | 日日日日日日bbbbb视频 | 日韩精品视频在线播放 | 国产激情一区二区三区 | 国产精品久久久久久久久久免费看 | 国内av在线 | 91视视频在线观看入口直接观看 | 欧美精品成人一区二区三区四区 | 天天综合国产 | 国产精品久久久久久久久久久久 | 国产激情视频 | 国产精品久久久久久久久久久免费看 | 成人在线不卡 | 欧美中文字幕一区 | 91一区二区三区 | 成人在线免费网站 | 日本精品一区 | 亚洲精品一区二区三区在线观看 | 91传媒在线播放 | 欧美影院久久 | 国产成人麻豆免费观看 | 亚洲一区二区在线 | 精品久久国产老人久久综合 | 精品一区二区三区四区外站 | 欧美日韩在线电影 | 999热在线视频|