Nuxt
本地打包
在自己的项目下打包
npm run build
安装Node和Npm
sudo apt install nodejs
sudo apt install npm
查看是否安装成功
nodejs --version
npm --version
如果是Ubuntu18.04或以下的版本,请参考https://github.com/npm/cli/issues/681#issuecomment-886009664
上传服务器
把.nuxt、static、nuxt.config.js、package.json上传到服务器,只要上传到服务器就可以了,不管是哪个位置都可以,用一个文件来包着它们

在服务器的项目下,开始部署项目
npm install
注意:在低配置的服务器下有可能安装失败,直接显示Killed,所以我们要增大linux的交换空间
sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
sudo /sbin/mkswap /var/swap.1
sudo /sbin/swapon /var/swap.1
PM2部署
安装pm2
npm install -g pm2
然后要在项目增加ecosystem.config.js文件,它是该项录下的PM2配置
配置:
module.exports = {
apps: [
{
name: 'example',
exec_mode: 'cluster',
instances: 'max',
script: './node_modules/nuxt/bin/nuxt.js',
args: 'start',
}
]
}
然后以PM2启动
pm2 start
查看pm2的日志,可以在日志看到已生成本地链接http://localhost:3000
pm2 log
其他常用PM2指令
pm2 delete all
pm2 delete app_name
pm2 stop app_name
pm2 list
放置静态文件
有一种用途,可以需要访问到项目下的静态文件,例如http://www.example.com/sitemap.xml这种的,但是没有在Nginx配置根目录。
其实不用配置Nginx根目录,直接把文件放置在项目的static文件夹就可以了
Nginx
访问http://www.example.com时,80转443,反向代理后访问localhost:3000,在浏覧器显示的是https://www.example.com,显示的是localhost:3000的内容

安装
首先安装Nginx
sudo apt install nginx
通过查看Nginx版本以验证是否安装成功
nginx -v
配置virtual host
在/etc/nginx/sites-enabled/增加一个virtual host,例如example
vim /etc/nginx/sites-enabled/example
配置:
upstream nuxt{
server localhost:3000;
}
server {
server_name example.com www.example.com;
location / {
proxy_pass http://nuxt;
}
}
检查配置语法
nginx -t
开启Nginx
sudo systemctl start nginx
Nginx的其他常用指令
sudo systemctl status nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
配置证书
要准备域名www.example.com和example.com指向服务器的ip,否则无法验证。当然,你可以只做www.example.com的证书,配置只写一个域名就可以了。
安装Certbot
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-nginx
启动Certbot生成证书
sudo certbot --nginx -d example.com -d www.example.com
输入指令后,首先它会要求你输入Email

然后同意以下选项

可以看到,它会把设定直接写入你刚才的Nginx文件

然后它会让你选择是否把该域名的http自动导向到https,选择2

提示成功

可以回去查看nginx配置,看到它己经帮你写好的,不需再做任何设置

证书续订
其实,它会帮你自动续订的,不需做任何设置,但是你可以做个测试(模拟证书续订)
sudo certbot renew --dry-run
还是不放心的话,其实在这个文件里有写自动续订的脚本
cat /etc/cron.d/certbot
