前言
文章始发于我的自媒体博客《》,选自《Vuejs开发技巧》系列文章
nuxt是基于vue--开发的vuejs服务端渲染框架,它极大的避免了我们基于vue cli创建项目自己搭建服务端渲染的繁琐过程,今天我们就来讲一讲如何部署一个基于nuxt开发的web应用
部署环境要求nuxt部署
npm run build
在nuxt项目根目录中将.nuxt,,,env,nuxt..js,.json六个文件上传上去,其中env文件为自定义配置文件,可根据实际自己有无使用选择上传
在服务器nuxt项目根目录中执行以下命令,--参数是只安装非编译型依赖,主要体现在指令只会安装.json中中的依赖,不会安装中的依赖包
npm install --production
pm2是用于node进程管理的进程守护工具,它能够使我们node项目因出现不可控制的因素报错crash而快速自动重启,类似应用的一样
npm install -g pm2
在nuxt项目根目录创建pm2.json文件,内容如下
{ "apps": [ { "name": "自定义启动应用名称", "script": "server/index.js", "out_file": "日志目录/logs/nuxt_out.log", "error_file": "日志目录/logs/nuxt_error.log", "cwd": "nuxt项目在服务器中的根目录位置", "max_memory_restart": "200M", "autorestart": true, "node_args": [], "args": [], "instances": 4, "exec_mode": "cluster", "env": { NODE_ENV: "production" } } ] }
在nuxt项目根目录执行
pm2 restart pm2.json
看到如下便是启动成功
pm2启动
接下来我们就可以通过默认3000端口访问了(前提是服务器开放了3000端口,否则会出现无法访问的现象)
使用nginx做端口代理
很多时候我们访问的网站地址是类似这样的xxx..com,这些链接是不包括端口的,我们该如何实现这个功能呢,这个就离不开我们强大的nginx的功能了,接下来我们一步步实现以上功能
server { listen 80; server_name xxx.domain.com; #该域名是接下来我们直接通过这个链接访问nuxt应用 index index.php index.html index.htm default.php default.htm default.html; root /www/wwwroot/nuxt项目根目录; }
通过以上配置,我们访问xxx..com就会直接访问到/www//nuxt项目根目录/下面的index.html文件
server { listen 80; server_name xxx.domain.com; #该域名是接下来我们直接通过这个链接访问nuxt应用 index index.php index.html index.htm default.php default.htm default.html; root /www/wwwroot/nuxt项目根目录; # 代理端口 location / { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Nginx-Proxy true; proxy_cache_bypass $http_upgrade; proxy_pass http://127.0.0.1:3000; } }
这时候重启nginx(nginx )后我们发现可以通过xxx..com访问内容了,可是我们发现报错了,一些静态资源无法访问,出现这些问题其实是代理出现了问题,我们在这个基础之上再调整下就好了(●'◡'●)
server { listen 80; server_name xxx.domain.com; #该域名是接下来我们直接通过这个链接访问nuxt应用 index index.php index.html index.htm default.php default.htm default.html; root /www/wwwroot/nuxt项目根目录; # 代理端口 location / { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Nginx-Proxy true; proxy_cache_bypass $http_upgrade; proxy_pass http://127.0.0.1:3000; } # 代理静态资源 location ^~ /_nuxt/{ proxy_set_header Host $host; proxy_pass http://127.0.0.1:3000; } location ^~ /js/{ proxy_set_header Host $host; proxy_pass http://127.0.0.1:3000; } location ^~ /css/{ proxy_set_header Host $host; proxy_pass http://127.0.0.1:3000; } location ^~ /image/{ proxy_set_header Host $host; proxy_pass http://127.0.0.1:3000; } }
重启nginx,浏览器打开xxx..com,发现一切都正常啦
结语
今天有关nuxt部署的技巧就分享到这里啦,觉得不错就点下你们宝贵的关注吧┭┮﹏┭┮,或者有什么其他问题可以下方留言哟,我会一一解答(不限前端,后端,不限开发语言哟)(●'◡'●)