|
|
|
|
挪动端

怎样在Ubuntu上运用pm2和Nginx摆设Node.js使用

本文次要展现怎样装置和设置装备摆设 pm2 用于这个复杂的 'Express' 使用,然后设置装备摆设 Nginx 作为运转在 pm2 下的 node 使用的反向署理。

作者:Muhammad Arul泉源:通博8888官网中国|2017-05-10 09:40

有奖调研 | 1TB硬盘等你拿 AI+区块链的开展趋向及使用调研


怎样在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 堆栈。

  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 作为反向署理。

链接

【编辑引荐】

  1. Ubuntu 16.04 下怎样在Vim中停止文本选择操纵和运用标记
  2. 怎样在Ubuntu和通博8888官网 Mint上启用桌面共享
  3. 怎样在通博8888官网上运用Nginx和Gunicorn托管Django使用
  4. 怎样在Ubuntu16.04中用Apache摆设Jenkins主动化效劳器
  5. 怎样运用Samba和Winbind将Ubuntu 16.04添加到AD域
【责任编辑:枯木 TEL:(010)68476606】

点赞 0
分享:
各人都在看
猜你喜好

读 书 +更多

通晓SOA:基于效劳总线的Struts+EJB+Web Service

Java的呈现,完成了跨操纵零碎平台的顺序开辟,以Java为根底的J2EE技能曾经成为因特网效劳技能的主流。但是,以J2EE为根底的SOA架构技能必...

订阅51CTO邮刊

点击这里检查样刊

订阅51CTO邮刊