赞
踩
1. 服务器安装 nodejs 环境
1.1 下载安装包
# (注意:源地址只会保存最新稳定的小版本,可以访问https://nodejs.org/dist/这个地址选择源)
wget https://nodejs.org/dist/latest-v18.x/node-v18.12.0-linux-x64.tar.gz
1.2 建一个nodejs文件夹进入解压并放入当前目录
# 解压到当前文件夹
tar -zxvf node-v18.12.0-linux-x64.tar.gz
# 将解压文件夹里面的内容移动到指定文件路径,便于自己识别管理
mv node-v18.12.0-linux-x64 /usr/local/node
1.3 配置环境变量
vim /etc/profile
# 末尾添加如下几行
# nodejs环境
export NODEJS=/usr/local/node
export PATH=$NODEJS/bin:$PATH
# 重新加载配置
source /etc/profile
# 进入/usr/local/node/bin查看版本
cd /usr/local/node/bin
node -v
18.12.0
1.4 建立软链接(配置全局可用node命令)
cd /usr/bin
ln -s /usr/local/node/bin/node node
ln -s /usr/local/node/bin/npm npm
1.5 配置淘宝镜像
npm config set registry=https://registry.npmmirror.com/
1.6 查看是否切换成功
npm config get registry
2. 安装Nuxt3的运行管理工具 pm2
全局安装pm2
npm install pm2 -g
3. 打包Nuxt3项目并上传到服务器
1. 打包
yarn build
// or
npm run build
2. 上传服务器
生成一个 .oupput 的文件夹, 里面包含 public 文件夹、 server 文件夹和 nitro.json。 public 下面主要放一些静态资源文件,server 下的 index.js 就是我们的启动入口文件。 我们要做的事情是: 把 .output 里面的所有文件放在服务器上的新建项目里面,我新建了一个 nuxt3-app 文件夹做演示。(当然你也可以直接把 .output 放进去)
官方上传文件到阿里云服务器的方法:使用WinSCP上传文件到Linux云服务器(当然其它方式都可以)
4. 配置ecosystem.config.js文件
按照官方提示,要使用 pm2 管理运行项目的话,需要在根目录下配置 ecosystem.config.js 文件(官方说明)
新建一个ecosystem.config.js,放到项目的根目录
- module.exports = {
- apps: [
- {
- name: 'NuxtAppName', // 设置启动项目名称
- exec_mode: 'cluster',
- instances: 'max',
- // 注意这里的相对路径。要访问到index.mjs就行了,
- // 如果你是整个.output一起放在服务器的话就和官方一样路写成
- //./.output/server/index.mjs就好了
- script: './server/index.mjs'
- }
- ]
- }
项目结构:
- [root@iZwz9d9v06uh0jnrexcuk9Z nuxt3-app]# ll
- total 16
- -rw-r--r-- 1 root root 175 Nov 1 23:24 ecosystem.config.js
- -rw-r--r-- 1 root root 129 Nov 1 23:24 nitro.json
- drwxr-xr-x 3 root root 4096 Nov 1 23:23 public
- drwxr-xr-x 4 root root 4096 Nov 1 23:24 server
5. 使用pm2启动Nuxt3项目
1. 直接在根目录下面执行命令
pm2 start ecosystem.config.js
# 然后使用下边的命令看一下启动的服务列表
pm2 list
online说明启动成功,这时候在浏览器看一下自己项目,可以正常访问。
2. 设置自动重启
pm2 startup
[root@iZwz9d9v06uh0jnrexcuk9Z nuxt3-app]# pm2 startup
[PM2] Init System found: systemd
Platform systemd
Template
[Unit]
Description=PM2 process manager
Documentation=https://pm2.keymetrics.io/
After=network.target[Service]
Type=forking
User=root
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Environment=PATH=/usr/local/node/bin:/usr/java/jdk1.8.0_281/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Environment=PM2_HOME=/root/.pm2
PIDFile=/root/.pm2/pm2.pid
Restart=on-failureExecStart=/usr/local/node/lib/node_modules/pm2/bin/pm2 resurrect
ExecReload=/usr/local/node/lib/node_modules/pm2/bin/pm2 reload all
ExecStop=/usr/local/node/lib/node_modules/pm2/bin/pm2 kill[Install]
WantedBy=multi-user.targetTarget path
/etc/systemd/system/pm2-root.service
Command list
[ 'systemctl enable pm2-root' ]
[PM2] Writing init configuration in /etc/systemd/system/pm2-root.service
[PM2] Making script booting at startup...
[PM2] [-] Executing: systemctl enable pm2-root...
[PM2] [v] Command successfully executed.
+---------------------------------------+
[PM2] Freeze a process list on reboot via:
$ pm2 save[PM2] Remove init script via:
$ pm2 unstartup systemd
[root@iZwz9d9v06uh0jnrexcuk9Z nuxt3-app]#
当服务器故障或者重启的时候,pm2服务能记录状态自动重启,不需要人为重启pm2服务。
3. 查看服务状态
pm2 list
6. 常用pm2命令
命令 用途
pm2 list 查看启动的服务列表
pm2 show id号 查看对应id号的详细服务情况
pm2 start name(服务名) 启动服务
pm2 stop name(服务名) 终止服务
pm2 restart name(服务名) 重启服务
pm2 delete name(服务名) 删除服务
pm2 kill name(服务名) 杀死服务
pm2 logs name(服务名) 查看服务执行日志
pm2 logs name(服务名) 查看服务日志
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。