linux下express+puppeteer安装部署并用PM2守护进程

这篇具有很好参考价值的文章主要介绍了linux下express+puppeteer安装部署并用PM2守护进程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

承上篇 puppeteer-不需重构,无痛加强vue单页面应用的SEO,提升百度收录排名,是在本地nginx部署前端,本地另起express服务进行测试,下面我们来讲讲如何部署express到linux服务器,并用PM2守护进程。
node 16.14.1
puppeteer ^20.7.2
express ^4.18.2

在此仅作为本人开发记录,不一定能解决你的问题,在文末可以到github的讨论区看看寻找你的答案。

方法

首先我们需要有一个linux服务器,并且该服务必须要有node环境。找到合适的服务器后让我们用xshell连接服务器进行操作。

1.xshell连接服务(windows)

进入首页,点击左上角新建会话,按照如下操作
linux下express+puppeteer安装部署并用PM2守护进程
验证身份后获得了一串密钥,点击保存后进入linux终端界面
linux下express+puppeteer安装部署并用PM2守护进程

2.验证是否存在node环境

输入命令

node -v

linux下express+puppeteer安装部署并用PM2守护进程
注意:puppeteer大多仅适用于node16+版本,但是并不代表越高越好,更高版本的node对服务器的要求也更高,在这里我的node版本是16.14.1

如果你的服务并没有node环境的话,需要看下服务中是否安装了nvm

nvm -v

看到有版本号即可,可以使用以下命令进行安装指定版本的node

nvm install <node指定版本>

3.新建express项目

选择合适的位置,新建文件夹

mkdir <文件名>

cd <文件名>,进入到你刚刚所创建的文件夹下,分别创建文件我上篇文章中的puppeteer-pool.js、service.js、spider,或者在windows环境下创建的文件夹压缩至zip文件,在xshell中输入 rz ,选择该压缩文件,unzip <压缩文件名>进行解压,进入项目文件夹下,npm install安装依赖。
输入node service.js 看到控制台并未报错就对了,报错也不要着急,下面我们会一一解决

4.安装PM2并启动项目

npm install -g pm2

校验是否安装成功 pm2 -v
linux下express+puppeteer安装部署并用PM2守护进程

使用pm2 start service.js启动项目,注意一定要带上.js,否则启动的项目并不是我们需要的项目
至此成功

相关命令

mkdir <文件名> 新建文件夹
rm <文件> 删除文件
rm -rf 文件目录> 删除目录
rz 上传文件
unzip <压缩文件名.zip> 解压zip包
tar -xzvf <文件名>.tar.gz 解压 .tar.gz 或 .tgz 压缩包
pm2 list 查看守护的项目
pm2 delete 项目名称/指项目pid 删除指定项目
pm2 restart 项目文件 重启指定项目

部署过程中遇到的一些问题

指路-》官网ISSUE

1.puppeteer未自动安装对应版本的chrome,以及如何查看puppeteer对应chrome版本
办法一:可以配置你本地的chrome.exe,例如

const browser = await puppeteer.launch({
            //无头模式
			headless: true,
            //参数
			args: [
				'--disable-gpu',
				'--disable-dev-shm-usage',
				'--disable-setuid-sandbox',
				'--no-first-run',
				'--no-sandbox',
				'--no-zygote',
				'--single-process'
			],
			//一般不需要配置这条,除非启动一直报错找不到谷歌浏览器
			executablePath:'chrome.exe在你本机上的路径,例如C:/Program Files/Google/chrome.exe'
		});

办法二:手动安装
针对不同的puppeteer我们需要安装对应的chrome版本,怎么查看对应版本呢?
1.看控制台报错,例如

Could not find Chrome (ver. 114.0.5735.133)

2.在package.json中查看安装的puppeteer版本,在官网中找到对应tag,根据以下路径找到对应浏览器版本
linux下express+puppeteer安装部署并用PM2守护进程

例如puppeteer 18.2.1版本
linux下express+puppeteer安装部署并用PM2守护进程

linux下express+puppeteer安装部署并用PM2守护进程
即可看到我们需要的版本
然后根据需求把%d改为我们需要的版本,访问链接进行下载

linux:
‘https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/%d/chrome-linux.zip’,

mac:
‘https://storage.googleapis.com/chromium-browser-snapshots/Mac/%d/chrome-mac.zip’,

win32:
‘https://storage.googleapis.com/chromium-browser-snapshots/Win/%d/chrome-win32.zip’,

win64:
‘https://storage.googleapis.com/chromium-browser-snapshots/Win_x64/%d/chrome-win32.zip’

2.项目报错 Failed to launch the browser process!
可能是linux缺少部份依赖,需要使用yum install进行下载,指路 官方解决办法
linux下express+puppeteer安装部署并用PM2守护进程
3.报错 net::ERR_NAME_NOT_RESOLVED
这个可能是因为你在 service.js文件中的写入的url域名无法解析,需要你在主机的host配置对应ip以及域名。
验证是不是这个原因你可以把url改为http://www.baidu.com,查看是否报错。
4.报错 Could not find Chrome (ver. 114.0.5735.133)
puppeteer应该自动会下载安装chrome浏览器至指定路径,但是maybe运气不好他就是不会下载,解决办法自己手动下载对应版本浏览器至 root/.cache/chrome/ 目录下,下载版本请参照上文查询,例如20.7.2对应版本及路径如下
linux下express+puppeteer安装部署并用PM2守护进程
linux下express+puppeteer安装部署并用PM2守护进程文章来源地址https://www.toymoban.com/news/detail-492309.html

到了这里,关于linux下express+puppeteer安装部署并用PM2守护进程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux搭建node环境-MobaXterm+node+pm2安装

    1.登录session 2.安装X11-forwarding 我也不知道这个有什么用,但是有个叉叉在那里有点难受,就把它解决了 什么是X11-forwarding?怎么使用? 安装完就没了叉叉 3.安装node 由于直接 yum 安装的 nodejs 版本太低,所以参考这篇文章安装:Linux中安装node 4.安装pm2 建立软连接: 输入pm2 li

    2024年02月16日
    浏览(48)
  • 【pm2】pm2的安装与基本命令:

    一、安装: pm2 是 node 进程管理工具 ,可以利用它来简化很多 node 应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,因为在工作中遇到服务器重启后,需要一个个去重新启动每个服务,这样不仅繁琐、效率低,而且容易遗忘开启一些服务。 【PM2 的主要特性】 1、内

    2024年02月13日
    浏览(40)
  • node.js PM2部署项目

    文章更新 2023-05-21 更新NSSM安装服务的方式 pm2 是一个守护进程管理工具,它能帮你守护和管理你的应用程序。通常一般会在服务上线的时候使用 pm2 进行管理。本文围绕以下重点进行讲解:安装pm2;命令行部署到PM2;PM2查看日志等命令;PM2进行负载均衡;PM2配置文件模式;日志

    2024年02月06日
    浏览(39)
  • PM2 vs Kubernetes:在部署 Node.js 服务时使用哪个?

    Node.js 已成为 Web 开发中的热门技术之一,但如果我们想成功地将 Node.js 应用程序交付给用户,我们需要考虑部署和管理这些应用程序。两个常见的选项是 PM2 和 Kubernetes。PM2 是一个用于运行和管理 Node.js 应用程序的进程管理器,它能够创建不间断运行的 Node.js 应用程序,并确

    2024年02月06日
    浏览(41)
  • ubuntu 22.04安装nodejs和pm2

    安装过程曲折,浅记录一下。最终通过nvm安装成功 第一反应就是用apt去安装node,命令如下: 最后也是安装成功了 然后用npm去安装pm2,结果报错了,可以看出时nodejs版本问题(ubuntu软件源默认nodejs版本是12.22.9) 所以apt安装虽然可行,但是版本不一致,根本装不了pm2 然后我就开始

    2024年02月21日
    浏览(37)
  • centos安装:node.js、npm及pm2

            Node.js发布于2009年5月,由Ryan Dahl开发,是一个基于Chrome V8引擎的JavaScript运行环境,使用了一个事件驱动、非阻塞式I/O模型,让JavaScript 运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。         NPM的全称是Nod

    2024年01月24日
    浏览(40)
  • 保姆级阿里云ESC服务器安装nodejs和服务器node服务管理工具PM2安装使用

    默认 /opt 下边 /opt/node 也可建到其他地方,如/usr/local/node 等 创建后切换到文件夹下 cd /opt/node 使用命令下载node wget https://nodejs.org/dist/v18.12.0/node-v18.12.0-linux-x64.tar.xz 或者到node官网下载tar包到本地然后上传到node所在位置 上传 scp命令为 scp node-v18.12.0-linux-x64.tar.xz root@0.0.0.0:/opt/

    2024年02月08日
    浏览(56)
  • pm2详解

    对于后台进程的管理,常用的工具是crontab,可用于两种场景:定时任务和常驻脚本。关于常驻脚本,今天介绍一款更好用的工具:pm2,基于nodejs开发的进程管理器,适用于后台常驻脚本管理,同时对node网络应用有自建负载均衡功能。官方的说法,pm2 是一个带有负载均衡功能

    2024年02月09日
    浏览(46)
  • pm2设置开机启动

    1、生成开机启动 pm2 服务的配置文件 运行:pm2 startup 命令 执行 2、 pm2 save , 保存当前 pm2 运行的各个应用保存到 /root/.pm2/dump.pm2下,开机重启时读取该文件中的内容启动相关应用。 3、查看配置是否开启:使用命令systemctl status pm2-root.service 官方相关文档:http://pm2.keymetrics.io/

    2024年02月12日
    浏览(43)
  • PM2入门及其常用命令

    进程管理主要是指创建,终止和监控进程。进程管理器主要是用来确保你的应用在启动后能够保持在线 pm2 是 nodejs 的进程管理器,默认支持负载均衡,能够守护进程。还支持查看应用运行时的性能,资源占用情况等 普通启动方式:node index.js,关闭终端就结束进程 node 进程挂

    2024年02月06日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包