最近开源了一款基于 Nextjs + Antd5.0 的管理后台系统,打算持续迭代到开发者能傻瓜式开发和部署管理后台的程度, 下面和大家分享一下最近的一些更新。...这里给大家总结几个优势: 负载均衡:pm2使用Node.js的cluster模块,可以在服务器上的所有CPU核心上运行多个应用实例,实现负载均衡。...后台运行:与直接在前台运行Node.js应用程序相比,pm2可以将应用程序在后台运行,更加稳定。 异常自动重启(持久化):pm2可以在应用程序停止之后立即重启,减少了停机时间。...pm2可以监测应用程序的运行状态,当进程发生异常(如无限循环)时,可以停止并重启不稳定的进程。 控制台应用监控:pm2提供了控制台界面,可以方便地查看应用程序的状态、日志和性能指标等信息。...: 支持PC端和移动端适配 由于目前大部分管理后台都是针对PC端的, 移动访问体验不好, 所以我在 Next-Admin 管理系统中做了适配, 保证在PC和移动端都能有不错的适配效果。
聊到运维,很长一段时间我觉得跟前端就是毫无关联的玩意,应该说半毛钱关系都木。...,是Nodejs应用程序守护进程必不可少的选择,方便管理基于nodejs平台下能够有独立运行访问的web服务,如nextjs、express、koa等前端应用 4.1 常见的应用场景 部署node...-g pm2 启动node项目 : pm2 start app.js 或者 pm2 start bin/www 停止pm2服务:pm2 stop bin/www 停止所有pm2服务: stop all...重启pm2服务: pm2 restart bin/www pm2所有进程信息:pm2 list 启动后如下所示 ?...4.3 高阶应用 在项目根目录中添加一个processes.json { #apps是一个数组,每一个数组成员就是对应一个pm2中运行的应用 "apps": [{ "name": "
,用户root,密码和登录putty密码一致。...接下来介绍几个经常会需要使用的pm2命令 pm2 start xxx.js --name xxx 启动xxx.js进程并进行重命名 pm2 restart xxx.js 更新代码后,使用restart...命令重启xxx.js进程 pm2 stop all 停止所有进程 pm2 stop xxx.js 停止xxx.js进程 pm2 stop 0 停止id为0的进程 pm2 list 查看所有当前正在运行的进程...然后使用pm2 list可以看到我们当前有一个进程属于启动状态,status就是进程的状态,online就代表正常启动成功,error就代表代码出错,可以查看日志看报错信息,stop就代表进程属于停止状态...可以发现,我们后端的server服务是运行在4001端口,但是我们前端访问没有懈怠端口号,就是访问的80端口,因为端口不一致导致跨域请求,所以无法取到我们数据库中的数据。
如果站点加载时间超过 3s,53% 的用户会放弃等待。页面展现之后,用户期望有平滑的体验,过渡动画和快速响应。...upstream bakend { ip_hash; server 192.168.0.14:88; server 192.168.0.15:80; } 4.fair 根据后台响应时间来分发请求...,响应时间短的分发的请求多。...: npm install pm2 -g pm2 start app.js image.png PM2 的主要特性 内建负载均衡(使用 Node cluster 集群模块) 后台运行 0 秒停机重载...具有 Ubuntu 和 CentOS 的启动脚本 停止不稳定的进程(避免无限循环) 控制台检测 提供 HTTP API 远程控制和实时的接口 API ( Nodejs 模块,允许和 PM2 进程管理器交互
按CTRL+C停止服务器。然后切换到另一个终端会话,然后按CTRL+C停止客户端。您现在可以断开此终端会话与服务器的连接并返回到原始终端会话。 在下一步中,我们将使用PM2启动服务器并在后台运行它。...第3步 - 使用PM2运行服务器 您有一个工作服务器接受客户端连接,但它在前台运行。让我们使用PM2运行服务器,使其在后端运行,并可以正常重启。...首先,全局使用npm命令在服务器上安装PM2 : sudo npm install pm2 -g 安装PM2后,使用它来运行服务器。...但是,如果我们重启机器,它将不再运行,所以让我们为它创建一个systemd服务。 运行以下命令以生成和安装PM2的systemd启动脚本。...在这种情况下,ID是0: pm2 show 0 此输出显示正常运行时间,状态,日志文件路径以及有关正在运行的应用程序的其他信息: Describing process with id 0 - name
如果没有看到预期的输出,请确保Node.js应用程序正在运行并配置为侦听正确的地址和端口。 一旦你确定它正常工作,按下CTRL+C即可终止应用程序(如果你还没有这么做的话)。...-u sammy --hp /home/sammy 作为附加步骤,我们可以保存PM2进程列表和相应的环境: pm2 save 您现在已经创建了一个在启动时为您的用户运行pm2的systemd 单元。...既然您的Node.js应用程序正在由PM2运行和管理,那么让我们设置反向代理。...proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } ... } 这会将服务器配置为响应其根目录下的请求...假设我们的服务器在example.com上可用,访问通过网络浏览器https://example.com/会发送请求到hello.js,侦听在localhost上的端口3000。
目前主流的、对 libuv latency 的计算方式,都是通过 setTimeout() 来设置 timer ,并记录回调函数被调用时所消耗的时间和预计消耗的时间之间的差值作为 latency ,如:...发生这类问题时,对应的线程将没办法进行正常的服务,比如对于 http server 来说,在这段时间内的请求会得不到响应。因此我们需要保证主线程的 libuv latency 尽可能的小。...501 (尚未实施) 服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。 502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。...QPS:全名 Queries Per Second,意思是“每秒查询率”,是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器在规定 Queries Per Second 时间内所处理流量多少的衡量标准...正常来讲服务的 QPS 可能随着时间的变化进行有规律的增长或减小,但是如果在某段时间内 QPS 发生了成倍的数量级的增长,那么有可能你的服务正在遭受 DDoS 攻击,或者正在被非法调用。
首先,我们需要在nginx服务器,同过不同的端口号,创建几个node服务。...然后安装好pm2后,通过pm2启动各个node服务。pm2是一个node应用的进程管理器。 ...然后,可以通过以下命令来启动和查看node服务进程: # 启动node服务 pm2 start xxx.js name xxx # 查看当前服务 pm2 list 后端服务器调试状态: 状态描述...服务器上(缓存) fair(第三方) 按后端服务器的响应时间来分配请求,响应时间短的优先分配 正定义hash hash自定义key 例子: upstream webserver{ ip_hash...,用替换后的URI重新匹配location 可理解为重写(rewrite)后,发起了一个新请求,进入server模块,匹配location 如果重新匹配循环的次数超过10次,nginx会返回500错误
完成准备后,您将有一台服务器在https:// example.com /上提供默认的Nginx占位符页面。 让我们开始在您的服务器上安装Node.js运行时。 安装Node.js....从nodesource运行安装脚本后,您可以像上面那样安装Node.js包: sudo apt-get install nodejs nodejs软件包包含nodejs二进制文件和npm,因此您无需单独安装...这将创建一个systemd 单元,在启动时为您的用户运行pm2。...使用此命令停止应用程序(指定PM2 App name或id): pm2 stop app_name_or_id 使用此命令重新启动应用程序(指定PM2 App name或id): pm2 restart...upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } 这会将服务器配置为响应其根目录下的请求
安装Node.js运行后,我们继续编写Node.js应用程序。 第二步,创建Node.js应用程序 让我们编写一个Hello World应用程序,它将“Hello World”返回给任何HTTP请求。...如果没有看到预期的输出结果,请确保Node.js应用程序正在运行并配置为侦听在正确的地址和端口。 一旦你确定它正常工作,按下CTRL+C即可终止应用程序(如果您还没有终止程序)。...PM2还维护其他信息,例如PID进程,其当前状态和内存使用情况。 如果应用程序崩溃或被杀死,在PM2下运行的应用程序将自动重新启动,使用startup子命令在系统启动时启动应用程序。...systemd -u sammy --hp /home/sammy 作为附加步骤,我们可以保存PM2进程列表和相应的环境: $ pm2 save 您现在已经创建了一个systemd 单元,在启动时为您的用户运行...Connection 'upgrade'; proxy_set_header Host \$host; proxy_cache_bypass \$http_upgrade; } ... } 这会将服务器配置为响应其根目录下的请求
对于nodejs的应用程序,PM2有一个负载均衡器: 提高应用程序的可用性和可靠性:负载均衡器可以将请求分配到多个服务器上,从而减轻单个服务器的负载,提高应用程序的可用性和可靠性。...,--restart-delay # 在日志前缀中添加时间,--time # 不自动重启应用程序,--no-autorestart # 指定强制重启的 cron 表达式,-...进程操作相关: pm2 stop all命令,停止所有进程 pm2 restart all命令,重新启动所有进程 pm2 reload all命令,将0秒停机时间重新加载(适用于网络应用程序) pm2...对于确保的应用程序在系统重启后自动启动非常有用。....重启策略 在指定的时间点重新启动应用程序 当文件发生更改时重新启动应用程序 当应用程序达到内存阈值时重新启动 延迟启动和自动重启 默认情况下禁用自动重启(应用程序始终使用PM2重新启动)当崩溃或退出时
/app.js 使用Postman测试后台项目接口是否正常 登录概述 登录业务流程 在登录页面输入用户名和密码 调用后台接口进行验证 通过验证之后,根据后台的响应状态跳转到项目主页 登录业务相关技术点...> 发送请求 echarts => 图表 element-ui => element ui组件 lodash => js工具库,该项目用到深拷贝与对象合并 moment => 时间处理工具库 nprogress...ssh(http协议默认运行在80端口,https默认运行在443端口) 使用pm2管理应用 1. npm i pm2 -g //全局安装 2. pm2 start 脚本(如..../app.js) --name 自定义名称 // 启动项目 3. pm2 ls //查看服务器运行的项目 4. pm2 restart 自定义名称 //重启项目 5. pm2 stop 自定义名称 //...停止项目 6. pm2 delete 自定义名称 //删除项目 ---- 接口API vue.config.js配置 路由懒加载 babel配置 Project preview
Node.js应用程序可以在命令行运行,但我们将专注于将它们作为服务运行,以便它们在重新启动或失败时自动重启,并且可以安全地在生产环境中使用。...为了测试应用程序,您的服务器上打开另一个终端会话,并通过curl连接到 本地主机 curl http://localhost:8080 如果您看到以下输出,则应用程序正常工作并侦听正确的地址和端口: tHello...sammy 这行命令创建一个systemd 单元 ,在启动时为您的用户运行pm2。...使用此命令停止应用程序(指定PM2 的App name或id): pm2 stop app_name_or_id 使用此命令重新启动应用程序(指定PM2 的App name或id): pm2 restart...upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } 这会将服务器配置为响应其根目录下的请求
然后安装好pm2后,通过pm2启动各个node服务。pm2是一个node应用的进程管理器。 ...然后,可以通过以下命令来启动和查看node服务进程: # 启动node服务 pm2 start xxx.js name xxx # 查看当前服务 pm2 list 后端服务器调试状态: 状态 描述 down...当前的服务器不参与负载均衡 backup 当其它节点都无法使用时的备份的服务器 max_fails 允许请求失败的次数,到达最大次数就会休眠 fail_timeout 经过max_fails失败后,服务暂停的时间...第三方) 按后端服务器的响应时间来分配请求,响应时间短的优先分配 正定义hash hash自定义key 例子: upstream webserver{ ip_hash; server 127.0.0.1...redirect 返回302昨时重定向,以后还会请求这个服务器 permanent 返回301永久重定向,以后会直接请求永久重定向后的域名 1)last 结束当前的请求处理,用替换后的URI重新匹配
,等他渲染好对应页面后,把渲染好的html结果推送出去。...这样在写网站的时候无需有其他的顾虑,可以想怎么写就怎么写,只有当爬虫过来的时候将渲染好的页面吐给他即可,其他用户访问正常,没有任何影响,是不是很爽 基本的运行流程如下图所示: ?...好了,说了很多下面我们来实际搭建一下,将其运行起来看效果。...他其实就是一个node项目,我们用pm2来启动他。...中直接修改就好 })); userAgentPattern是用来写清楚哪些UA头需要服务器渲染,除此之外的请求都直接单页面推送。
最近在探索学习前端工程化相关内容,在如今前后端分离的架构下,为了提升首屏渲染速度和 SEO 效果,兜兜转转,又回到了服务端渲染。...[1] 同构渲染简单来说就是一份代码,服务端先通过服务端渲染(SSR),生成 HTML 以及初始化数据,客户端拿到代码和初始化数据后,通过对 HTML 的 DOM 进行 patch 和事件绑定对 DOM...当浏览器加载页面时,其 JavaScript 代码会运行并使页面完全交互。...然后在每个请求上重用预渲染的 HTML。 服务器端渲染: 在每个请求上生成 HTML 的预渲染方法。... } 和一些封装的请求 Hooks 类似,useSWR 还支持自定义请求库,默认使用的是 fetch 的 pollyfill 模块(unfetch[13]),提供的中文官方的文档也非常清晰
(书山有路勤为径,学海无涯苦作舟) 开源也两年了,没想到自己在宣传.NetCore全栈的时候,也慢慢的做出了几个产品,毕竟也是一行一行的敲出来的,也是一天一夜的改出来的,希望每个人都能在自己学习中培养自己的踏实...2、安装Node 和 npm/cnpm https://nodejs.org/en/download 你可以本地下载好后,上传到服务器: 当然,你也可以直接在服务器里下载,解压和安装: cd 到 /...$ pm2 flush # 清空所有日志文件 $ pm2 stop all # 停止所有的应用程序 $ pm2 stop...,pm2会帮助我们自动重启所有的项目服务,保证项目能正常运行,这个可方便多了。...服务器运行,但是也有Linux的影子,当然,可能有部分难点: 1、文件大小写和路径问题; 2、文件权限问题; 3、net core本地正常,服务器不行的问题(多半是少文件,看日志); 4、nginx
PM2是 node.js项目 的进程管理工具,常用功能如下: 让 node.js项目 能在文件更新时自动重启; 让 node.js项目 能在服务器异常重启后也能自动启动; 可以试试查看 ndoe.js...项目 的输出日志,已经修改调整日志输出格式,加上时间前缀等; 让 node.js项目 部署在多台远程服务器上,且能实现项目版本自动更新发布等自动化操作; 让 node.js项目 不改变代码的情况下,开启多个进程提升服务性能...start app.js # 现在可用浏览器正常访问 node.js 项目了,且可以查看项目状态 pm2 list pm2 log 三、具体使用场景 1、PM2 常用命令 安装、启动、停止、查看进程信息等常用操作说明...4、提高 Node.js 性能 不用修改代码,就可以提高 Node.js 项目处理并发和响应速度的性能。详情,看这里!...8、服务器重启,Node.js 自启动 当服务器遇到异常重启后,Node.js 项目可以自启动,恢复服务!详情,看这里! 9、文件共享服务器 pm2 一句命令即可开启一个文件共享服务器!
Yapi 安装部署 2.1 本地部署 首先安装官方提供的 yapi-cli 工具,顺带安上 pm2 回头启服务的时候可以用来守护和管理进程: npm install -g yapi-cli pm2 --...跑,这里给 yapi 赋一个引用名称,以后操作方便,并设置当超过 200MB 内存上限后自动重启 pm2 start /usr/share/my-yapi/vendors/server/app.js...-n yapi --max-memory-restart 500M pm2 stop yapi # pm2 停止 pm2 list # pm2 查看运行状态 此时可以看到...pm2 运行的脚本状态: image.png 现在到浏览器访问 :9001 (注意这里的端口是你刚刚自己设置的端口号)就可以访问到 Yapi 的服务目录了,目录看起来跟官网比较类似...注册一个新账号,登录后就可以正常使用了。 2.2 安装 cross-request 插件 安装上 Yapi 之后,还需要在浏览器安装一个 cross-request 插件,来进行页面跨域请求。
min_uptime 应用运行少于时间被认为是异常启动; max_restarts 最大异常重启次数,即小于min_uptime运行时间重启次数; autorestart 默认为true, 发生异常的情况下自动重启...,就只说说我比较喜欢的几个功能: 利于多服务器监控管理; 代码异常,可以看出程序长期运行中的稳定性; 支持应用基本的启动,重启与停止等功能; 但是,keymetrics是一款商业版的监控软件,免费版功能有限...应用脚本输出一定需要重定向到/dev/null,因为该输出内容会以邮件的形式发送给用户,内容存储在邮件文件,会产生意向不到的结果,或会导致脚本压根不被执行; 稳定运行建议 PM2是一款非常优秀的Node...进程管理工具,它有着丰富的特性:能够充分利用多核CPU且能够负载均衡、能够帮助应用在崩溃后、指定时间(cluster model)和超出最大内存限制等情况下实现自动重启。...,min_uptime是应用正常启动的最小持续运行时长,超出此时间则被判定为异常启动; 设定异常重启延时restart_delay,对于异常情况导致应用停止,设定异常重启延迟可防止应用在不可测情况下不断重启的导致重启次数过多等问题
领取专属 10元无门槛券
手把手带您无忧上云