CentOS8使用Node.js+Nginx+PM2部署Nuxt项目流程

1,043 阅读2分钟

以下方法在CentOS8使用亲测可用

安装node

方法自行百度

拷贝项目至服务器

.nuxt
assets
components
layouts
middleware
pages
plugins
static
store
nuxt.config.js
package.json
package-lock.json
tailwind.config.js

安装项目依赖

npm install

打包

npm run build

安装 pm2

npm install pm2@latest -g

// 安装成功后提示
npm WARN deprecated debug@4.1.1: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)
/usr/local/src/nodejs/bin/pm2 -> /usr/local/src/nodejs/lib/node_modules/pm2/bin/pm2
/usr/local/src/nodejs/bin/pm2-dev -> /usr/local/src/nodejs/lib/node_modules/pm2/bin/pm2-dev
/usr/local/src/nodejs/bin/pm2-docker -> /usr/local/src/nodejs/lib/node_modules/pm2/bin/pm2-docker
/usr/local/src/nodejs/bin/pm2-runtime -> /usr/local/src/nodejs/lib/node_modules/pm2/bin/pm2-runtime
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.1 (node_modules/pm2/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

+ pm2@4.5.5

执行pm2 -h 查询使用方式

pm2 -h

// 报错信息
-bash: pm2: command not found

解决方法 添加软链接(如果没有出现报错信息,请忽略)

// -s 后的第一个路径从安装成功后的提示信息里找,第三行/usr/local/src/nodejs/lib/node_modules/pm2/bin/pm2
ln -s /usr/local/src/nodejs/lib/node_modules/pm2/bin/pm2 /usr/local/bin/pm2

nuxt.config.js配置:

export default {
  server: { // 配置Nuxt服务器
    port: 8080, // default: 3000
    host: '0.0.0.0', // default: localhost
    timing: false
  },

配置nginx.conf

http {
    # 创建一个 Nuxt Server 服务
    upstream nuxtDemo {
        # 这里server就是nuxt.config.js理配置的服务器ip
        server 0.0.0.0:8080;
    }

    server {
        listen 8080; # 在服务器创建的端口
        server_name new-obj.com;  # 这里是你解析后的域名
        location / {
            proxy_pass http://nuxtDemo;  #  创建的 Nuxt Server 服务名
            index index.html index.htm;  #  默认打开的页面
        }
    }
}

启动项目:

pm2 start npm --name "nuxt" -- run start // nuxt 项目名称

保存当前进程状态

pm2 save

生成开机自启服务

systemctl enable pm2-root

查看状态列表

pm2 ls
idnamemodestatuscpumemory
0nuxtfork0online0%45.8mb

pm2用法

$ npm install pm2 -g              # 命令行安装 pm2 
$ pm2 start app.js -i 4           #后台运行pm2,启动4个app.js 
                                  # 也可以把'max' 参数传递给 start
                                  # 正确的进程数目依赖于Cpu的核心数目
$ pm2 start app.js --name my-api  # 命名进程
$ pm2 list                        # 显示所有进程状态
$ pm2 monit                       # 监视所有进程
$ pm2 logs                        #  显示所有进程日志
$ pm2 stop all                    # 停止所有进程
$ pm2 restart all                 # 重启所有进程
$ pm2 reload all                  # 0秒停机重载进程 (用于 NETWORKED 进程)
$ pm2 stop 0                      # 停止指定的进程
$ pm2 restart 0                   # 重启指定的进程
$ pm2 startup                     # 产生 init 脚本 保持进程活着
$ pm2 web                         # 运行健壮的 computer API endpoint
$ pm2 delete 0                    # 杀死指定的进程
$ pm2 delete all                  # 杀死全部进程