apache服务器部署使用nuxtjs框架开发的vue服务端渲染项目

蛰伏已久 蛰伏已久 2019-07-05

安装环境

由于服务端渲染需要在服务器运行nodejs,因此nodejs必须提前安装好

项目代码通过git或ftp传到服务器之后,执行npm install,安装必须的依赖。

在我们项目package.json中我们添加这几条命令,在服务端我们只需执行npm run server即可

"scripts": {
  "dev": "nuxt",
  "build":"nuxt build",
  "start":"nuxt start",
  "server": "nuxt build && nuxt start",
  "test": "echo \"Error: no test specified\" && exit 1"
},

执行成功之后,会看到项目已经成功运行,网址为http://localhost:3000/ 

但是要被外部访问,必须设置域名转发

域名代理转发

首先修改httpd.conf,开启代理功能,找到如下几行,去掉注释

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so

然后配置域名,设置转发

<VirtualHost *:80>
    ServerAdmin ****@**.com
    DocumentRoot "/www/yourroot/"
    ServerName userside.cn
    ServerAlias www.userside.cn
    ProxyPass / http://localhost:3000/
    ProxyPassReverse / http://localhost:3000/
    ErrorLog "logs/userside_cn_log"
    CustomLog "logs/userside_cn_log" common
</VirtualHost>

设置好域名之后,重启服务器,然后在项目下执行 npm run server,正常应该可以通过域名访问了。

但是我们关闭命令行后,项目也就无法访问了,可以使用pm2进行进程管理

PM2进程管理

pm2是node的进程管理工具

PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单。

全局安装PM2

npm install -g pm2

安装之后设置软连接

ln -s /usr/local/node-v10.16.0-linux-x64/bin/pm2  /usr/local/bin

进入到项目所在目录

执行如下命令,将yourName换成你的项目名,这个是给这个进程起的名称,可以随意  --watch代表监听项目文件,当文件发生变化是,自动重新加载如下指令,这样就很方便了,当我们更改代码之后,只需要传到服务器即可,pm2会自动监听,重新执行 npm run server

pm2 start npm --name yourName -- run server --watch

这样就完成服务器部署了,可能有的同学还想服务器重启之后自动运行这个命令,使用pm2也很简单只需执行如下命令即可

pm2 startup
分享到

点赞(2)