nodejs nginx教程(如何在 Ubuntu 上使用 pm2 和 Nginx 部署 Node.js 应用)

2024-06-28 07:16:38 6

nodejs nginx教程(如何在 Ubuntu 上使用 pm2 和 Nginx 部署 Node.js 应用)

本文目录

如何在 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

  • ***隐藏网址***

  • 安装最新版本的 Nodejs LTS:

  • sudo apt-get install -y nodejs

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

  • node -v

  • npm -v

  • 检查 node.js 版本

    第二步 - 生成 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。

    用 express-generator 生成应用框架

    进入到项目目录并安装应用需要的所有依赖。

  • cd hakase-app

  • npm install

  • 然后用下面的命令测试并启动一个新的简单应用程序:

  • DEBUG=myapp:* npm start

  • 默认情况下,我们的 express 应用会运行在 3000 端口。现在访问服务器的 IP 地址:192.168.33.10:3000 :

    express nodejs 运行在 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

  • 配置 express nodejs 服务

    你可以看到 start 行有一个 nodejs 用于启动 express 应用的命令。我们会和 pm2 进程管理器一起使用这个命令。

    像下面这样使用 pm2 命令运行 express 应用:

  • pm2 start ./bin/www

  • 现在你可以看到像下面这样的结果:

    使用 pm2 运行 nodejs app

    我们的 express 应用正在 pm2 中运行,名称为 www,id 为 0。你可以用 show 选项 show nodeid|name获取更多 pm2 下运行的应用的信息。

  • pm2 show www

  • pm2 服务状态

    如果你想看我们应用的日志,你可以使用 logs 选项。它包括访问和错误日志,你还可以看到应用程序的 HTTP 状态。

  • pm2 logs www

  • pm2 服务日志

    你可以看到我们的程序正在运行。现在,让我们来让它开机自启动。

  • 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

  • 它会为启动应用程序生成 systemd 配置文件。当你重启服务器的时候,应用程序就会自动运行。

    pm2 添加服务到开机自启动

    第四步 - 安装和配置 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 X-NginX-Proxy true;

  • ***隐藏网址***

  • ***隐藏网址***

  • proxy_set_header Connection "upgrade";

  • proxy_max_temp_file_size 0;

  • ***隐藏网址***

  • 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

  • 第五步 - 测试

    ***隐藏网址***

    你可以看到 express 应用正在 Nginx web 服务器中运行。

    Nodejs app 在 pm2 和 Nginx 中运行

    下一步,重启你的服务器,确保你的 node app 能开机自启动:

  • pm2 save

  • sudo reboot

  • 如果你再次登录到了你的服务器,检查 node app 进程。以 yume 用户运行下面的命令。

  • su - yume

  • pm2 status www

  • nodejs 在 pm2 下开机自启动

    Node 应用在 pm2 中运行并使用 Nginx 作为反向代理。

使用Node.js配合Nginx实现高负载网络

nodejs和nginx是没关系的两个东西,nodejs开启进程后本身就是一个服务器,除非你的nodejs只是网站中的一个嵌套功能(比如即时通信),那样网站本身还是要用nginx或apache的

bundle.js怎么部署到服务器

服务器推荐用nginx配置简单性能强悍 nginx使用代理访问端Node.js应用服务器 配置: ***隐藏网址******隐藏网址***#添加端服务器nginx负载均衡配置 upstream nodejs { server 127.0.0.1:8080; } ... } 2)给应用添加虚拟主机: server { listen 80; server_nameIPlocation / { proxy_pass nodejs;#名字前面应所请求转发给端node } access_log logs/nodejs.access.log main;#需要志 } 推荐静态文件css、js图片应用服务器

如何在服务器上搭建nodejs

先确认下系统环境合不合要求Python -V(确认python版本大于2.6)***隐藏网址******隐藏网址***解压 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.26make sudo make install添加到系统环境 echo "export PATH=$PATH:/home/work/setups/node-v0.10.26/bin"》》~/.bash_profile . ~/.bash_profile执行该文件更新$PATH变量###安装Expresssudo 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 jsonnpm cache clean***隐藏网址***)###部署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.jsNODE_ENV=pro 环境变量 pro为生产环境(程序中可以指定)LANG 环境变量 指定默认语言node_out.log 输出日志 注意路径别抄成我的了 node_err.log 错误日志 index.js 启动文件

node.js文件放在nginx哪个目录

1.安装nodejs,之前就安装了。2.安装nginx ,我采用的直接源码安装3.进入 /usr/local/nginx/conf 目录,在该目录下创建include 文件下,我的配置文件就写在这个文件夹里面4.进入 /usr/local/nginx/conf/include 目录,创建 nginx.node.conf 文件,在里面输入如下代码:upstream nodejs {server 127.0.0.1:3000;#server 127.0.0.1:3001;keepalive 64;}

如何在一个域名下面部署多个nodejs项目

1.方案一:配置好域名之后,直接修改端nodejs项目的端口号为80就行2、方案二:如果80端口号已经被别的项目占用,那么就用nginx的反向代理

nginx需要安装node吗

是的,安装Node.js 由于NginxConfig是一个基于Vue的前端项目,我们首先得安装Node.js。 首先从官网下载Node.js的安装包,下载地址:nodejs.org/zh-cn/downl… 下载成功后将安装包解压到/usr/local/src/目录下,使用如下命令即可; cd /usr/local/src/ tar xf node-v16.14.2-linux-x64.tar.xzcd node-v16.14.2-linux-x64/ ./bin/node -v复制代码 使用./bin/node -v命令可查看当前安装版本; 如果想在Linux命令行中直接运行,还需对node和npm命令创建软链接; ln -s /usr/local/src/node-v16.14.2-linux-x64/bin/node /usr/bin/nodeln -s /usr/local/src/node-v16.14.2-linux-x64/bin/npm /usr/bin/npm node -v npm -v复制代码 创建完成后使用命令查看版本,至此Node.js安装完成。 安装NginxConfig Node.js安装完成后,就可以开始安装NginxConfig了。

linux上利用pm2和nginx部署项目

Introduce 在开发模式的时候,我们常用 nodemon 和 webpack 热更新nodejs项目(如express)和前端项目(如vue),但需要部署的时候我们就不能再用开发环境的配置了,需要改成生产环境配置。为了使得项目可以稳健的运行在服务端,node可以使用nohup启动,前端项目可以使用nginx代理。 但是为了更加规范管理,我们应该使用pm2来管理node项目。

nohup(不推荐使用)

作用:不挂断地运行命令。 启动后通过 ps -ef 可以查看进程和 pid,如果需要停止,输入

需要特别注意的是,退出远程时,要使用 exit 退出,直接关闭远程工具将会导致后台静默进程停止。 尽管nohup是内置工具,但万一服务抛异常,对外没有反应,表现为无端停止服务,对维护不友好。

pm2(推荐使用) 相比 nohup,pm2 更加合理,推荐使用 pm2 部署。 首先全局安装 pm2

为了方便,我们可以把 pm2 软链接到系统环境下(假设 pm2 安装路径是/usr/sbin/nodejs/bin/pm2),

最后在项目中添加 pm2 配置文件, processes.json

其中 name 代表进程别名,script 代表需要执行的命令,env 是注入到服务中的变量。

最后修改 package.json 的 start 命令(项目为 express )为

如果需要查看 pm2 状态,使用

表明通过 pm2 启动项目。

停止或重启服务使用

自动启动 在实际情况下,偶尔会发生服务器宕机,可是重启后pm2应用不会被自动启动,这时候我们就需要去保存我们的pm2状态,然后配置开机自启。

执行后会输出

这表示pm2把当前应用列表启动信息保存到了磁盘文件上

执行后输出

这表明pm2往系统中写入了开机启动任务,开机是自动启动上次pm2保存的应用列表

这时候如果想测试,可以手动重启服务器试一下,查看一下pm2应用任务是否正确启动

再也不用担心重启后服务不起了。

nginx ***隐藏网址*** 安装教程 代理教程

***隐藏网址***

所以我们常常需要在80端口监听多个服务,这就必须要用上nginx的代理功能了。用法如下:

常规配置

代理配置

nginx如果检测到vue.msg.com的请求,将 转发 请求到本机的8080端口,如果检测到的是react.msg.com请求,也会将请求 转发 到8081端口。

同样的,如果前面用pm2开启了node项目,而且运行在3000端口,并且已经做好了域名映射,如(api.msg.com),我们可以同理配置代理

上面就是linux上部署项目的教程(后续介绍 docker部署 )。

nodejs nginx教程(如何在 Ubuntu 上使用 pm2 和 Nginx 部署 Node.js 应用)

本文编辑:admin

本文相关文章:


nodejs nginx教程(node.js文件放在nginx哪个目录)

nodejs nginx教程(node.js文件放在nginx哪个目录)

本文目录node.js文件放在nginx哪个目录bundle.js怎么部署到服务器nginx需要安装node吗使用Node.js配合Nginx实现高负载网络如何在 Ubuntu 上使用 pm2 和 Nginx 部署 Node.js 应用li

2024年7月22日 23:07

nodejs nginx教程(nginx需要安装node吗)

nodejs nginx教程(nginx需要安装node吗)

本文目录nginx需要安装node吗linux上利用pm2和nginx部署项目使用Node.js配合Nginx实现高负载网络如何在一个域名下面部署多个nodejs项目bundle.js怎么部署到服务器如何在 Ubuntu 上使用 pm2 和

2024年7月20日 19:59

更多文章:


twitch(国内手机如何下载twitch)

twitch(国内手机如何下载twitch)

本文目录国内手机如何下载twitchtwitch 是什么意思啊怎么在Twitch上注册账号twitch的功能是什么手机上怎么看twitch不卡为什么在twitch看直播却显示离线iPad 上显示离线,可是我手机却看得好好的国内手机如何下载t

2024年6月5日 04:36

wps文字下载安装(wps2016如何下载安装步骤)

wps文字下载安装(wps2016如何下载安装步骤)

大家好,今天小编来为大家解答以下的问题,关于wps文字下载安装,wps2016如何下载安装步骤这个很多人还不知道,现在让我们一起来看看吧!本文目录wps2016如何下载安装步骤怎样安装wps字体电脑怎么下载wps软件并安装请问wps里的字体

2024年7月9日 09:31

御龙在天法师技能加点(御龙在天 冰系法师 加点 要 详细的 本人70 要谢谢啦)

御龙在天法师技能加点(御龙在天 冰系法师 加点 要 详细的 本人70 要谢谢啦)

本文目录御龙在天 冰系法师 加点 要 详细的 本人70 要谢谢啦求御龙在天法师烈火,技能加点御龙在天法师属性加点御龙在天法师该怎么样加属性点御龙在天60以后的法杖的属性加点和技能加点,带图御龙在天手游法师怎么加点2015御龙在天法师技能点怎

2024年6月24日 09:17

三阶魔方教程(三阶魔方七步教程)

三阶魔方教程(三阶魔方七步教程)

本篇文章给大家谈谈三阶魔方教程,以及三阶魔方七步教程对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录三阶魔方七步教程三阶魔方教程一步一步图解

2024年7月14日 21:05

蚁小二相似度检测工具怎么使用?怎样检测人脸相似度(人脸识别技术)

蚁小二相似度检测工具怎么使用?怎样检测人脸相似度(人脸识别技术)

本文目录蚁小二相似度检测工具怎么使用怎样检测人脸相似度(人脸识别技术)论文检测是查的重复率还是相似度人脸相似度在线测试,百度ai与腾讯ai哪个准哪个好 比如人脸识别相似度在线明星脸相似度测试,苹果手机一款测 与明星脸相似度的软件是啥情侣照片

2024年6月28日 05:52

新型冠状病毒疫情(什么是新型冠状病毒肺炎)

新型冠状病毒疫情(什么是新型冠状病毒肺炎)

其实新型冠状病毒疫情的问题并不复杂,但是又很多的朋友都不太了解什么是新型冠状病毒肺炎,因此呢,今天小编就来为大家分享新型冠状病毒疫情的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录什么是新型冠状病毒肺炎如何正确的

2024年8月15日 15:40

宁波麻将的游戏规则是什么啊?请问:宁波麻将的胡数是怎么计算的吗

宁波麻将的游戏规则是什么啊?请问:宁波麻将的胡数是怎么计算的吗

本文目录宁波麻将的游戏规则是什么啊请问:宁波麻将的胡数是怎么计算的吗宁波麻将的介绍宁波麻将怎么胡宁波七百搭麻将技巧宁波麻将的宁波7百搭麻将宁波麻将的游戏规则是什么啊宁波麻将详细游戏规则如下:1、当一张桌子上玩家为四个时,游戏才能开始,掷骰子

2024年5月17日 02:12

英雄大作战v0 7出招表(英雄大作战v0.7无敌版Eason出招表)

英雄大作战v0 7出招表(英雄大作战v0.7无敌版Eason出招表)

本文目录英雄大作战v0.7无敌版Eason出招表英雄大作战V0.7无剑刃逊无敌版怎么出招英雄大作战v0.7出招表4399小游戏英雄大作战V0.7终极无敌版各任务怎么出技能英雄大作战v0.7怎么发绝招 要看的懂的 要像防+前+跳 这样子的英雄

2024年6月25日 12:58

有哪些是经典的智力游戏?智力游戏排行榜前十名

有哪些是经典的智力游戏?智力游戏排行榜前十名

这篇文章给大家聊聊关于智力游戏,以及有哪些是经典的智力游戏对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录有哪些是经典的智力游戏智力游戏排行榜前十名幼儿智力游戏有哪些4399智力游戏排行榜是怎么样的12个经典智力游戏12个经典

2024年8月11日 14:06

僵尸困境修改器(手机越狱是什么意思)

僵尸困境修改器(手机越狱是什么意思)

本文目录手机越狱是什么意思求一些丧尸生存类的游戏!僵尸困境修改器怎么用手机越狱是什么意思越狱是指开放用户的操作权限,使得用户可以随意擦写任何区域的运行状态,只有越狱成功后iPhone的文件系统才处于可读写状态,可以安装和运行未经过官方认证的

2023年11月8日 02:00

picopark(《picopark》是手游还是端游)

picopark(《picopark》是手游还是端游)

本文目录《picopark》是手游还是端游picopark是手游还是端游picopark需要每个人都买吗《picopark》手机可以玩吗pico park这个游戏怎么和好友玩picopark怎么操作picopark怎么联机《picopark

2024年5月9日 13:55

qq好友分组列表(qq怎样给好友分组)

qq好友分组列表(qq怎样给好友分组)

本文目录qq怎样给好友分组qq如何给好友分组qq好友分组列表怎么弄qq怎么快速分组好友列表(qq怎么批量管理好友分组)qq怎样给好友分组首先打开qq后,点击下方的联系人,你的所有好友分组就会显示出来,然后找到你想重新分组的好友,点击你好友原

2024年6月27日 04:24

榴莲视频下载安装(中国人1分钟买下8万个榴莲,泰国榴莲真的很好吃吗)

榴莲视频下载安装(中国人1分钟买下8万个榴莲,泰国榴莲真的很好吃吗)

本文目录中国人1分钟买下8万个榴莲,泰国榴莲真的很好吃吗榴莲为什么这么多人喜欢吃,难道有瘾榴莲怎么催熟如何打开榴莲超级简单方便的方法中国人1分钟买下8万个榴莲,泰国榴莲真的很好吃吗怎么说呢,榴莲这个东西真的是爱憎分明,喜欢的爱到不行,比如我

2024年7月2日 12:41

html静态网页制作(静态网页制作步骤)

html静态网页制作(静态网页制作步骤)

其实html静态网页制作的问题并不复杂,但是又很多的朋友都不太了解静态网页制作步骤,因此呢,今天小编就来为大家分享html静态网页制作的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录静态网页制作步骤怎么通过Htm

2024年7月17日 21:15

2008年qq版本(现在有没有QQ2008年最新版本)

2008年qq版本(现在有没有QQ2008年最新版本)

大家好,关于2008年qq版本很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于现在有没有QQ2008年最新版本的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本

2024年7月11日 02:45

12306火车票网上订票app(怎样下载铁路12306)

12306火车票网上订票app(怎样下载铁路12306)

大家好,关于12306火车票网上订票app很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于怎样下载铁路12306的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2024年6月24日 03:13

root大师官方正版下载(一键root大师)

root大师官方正版下载(一键root大师)

大家好,root大师官方正版下载相信很多的网友都不是很明白,包括一键root大师也是一样,不过没有关系,接下来就来为大家分享关于root大师官方正版下载和一键root大师的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!本

2024年8月31日 21:30

招聘管理软件(中小型企业招聘管理系统多少钱)

招聘管理软件(中小型企业招聘管理系统多少钱)

本文目录中小型企业招聘管理系统多少钱来年我司打算购买一款招聘管理软件,应该从哪些方面来考察什么招聘管理系统最好啊招聘软件有哪些推荐为什么要用招聘管理软件呢daydao人力资源管理软件和招聘管理软件能打通吗招聘软件这么火,哪个最好用求推荐适合

2024年5月6日 05:29

领养qq宠物(QQ宠物在哪领养)

领养qq宠物(QQ宠物在哪领养)

本文目录QQ宠物在哪领养怎么领养QQ宠物呢怎么领养qq宠物如何领养qq宠物怎么领养QQ宠物宠物领养是在哪些平台比较靠谱怎样领养qq宠物领养qq宠物熊熊官网如何领养qq宠物 领宠物的方法QQ宠物在哪领养1、点开QQ,登陆,确保登陆。2、在QQ

2023年5月29日 00:40

类似魔兽世界的手游有哪些(类似《魔兽世界》的手游有哪些)

类似魔兽世界的手游有哪些(类似《魔兽世界》的手游有哪些)

今天给各位分享类似《魔兽世界》的手游有哪些的知识,其中也会对类似《魔兽世界》的手游有哪些进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录类似《魔兽世界》的手游有哪些求类似于魔兽世界的手游类似魔兽的手游类似魔兽的

2024年6月14日 02:23

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1731
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1156
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1152
标签列表

热门搜索