主要目的:
- 将Node项目(以svelte sapper应用程序例)部署到ubuntu服务器中
- 在ubuntu服务器中配置nginx,将项目部署到自己的网站上
涉及知识点:
- 在ubuntu中安装node,npm
- 使用pm2对node进程进行管理
- 使用缓存设置 Nginx 服务器
一、ubuntu安装node,npm
sudo apt install nodejs
sudo apt install build-essential
node -v
npm -v
二、将自己的node项目上传到服务器
scp 本地文件 ubuntu@公网ip:/home/ubuntu/服务器文件夹地址
这是我服务器的项目目录
三、运行自己的node项目并用pm2管理
cd 你的项目目录
npm run build
pm2 start npm --name "demo" -- start
pm2 save
sudo env PATH=$PATH:/usr/local/bin pm2 startup -u USER_NAME
pm2 list
curl http://localhost:5000
查看pm2守护项目
检查是否运行成功
四、安装配置nginx
sudo apt install nginx
sudo ufw allow 'Nginx HTTP'
sudo mkdir /var/cache/nginx
sudo nano /etc/nginx/sites-available/YOUR_SITE.vhost
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=480m use_temp_path=off;
server { listen 80; listen [::]:80;
server_name www.你的域名.com;
location / {
proxy_cache my_cache;
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
proxy_cache_revalidate on;
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
sudo ln -s /etc/nginx/sites-available/YOUR_SITE.vhost /etc/nginx/sites-enabled/
cd /etc/nginx/sites-enabled/
sudo rm -rf default
sudo nginx -t
sudo service nginx restart
sudo systemctl status nginx
sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log
接着访问自己的网站域名即可
nginx正常运行的样子
五、错误排查
- 1、使用
node npm build
检查你的node项目是否编译成功
- 2、使用
pm2 list
检查你的node项目是否在运行
- 3、使用
sudo service nginx status
检查nginx是否正常运行
如果想要给自己的网站加上SSL证书,可以参考文档另一篇blog:nginx+ssl
参考文章:hosting-your-own-svelte-sapper-app
关注我的github:https://github.com/ddy-ddy
关注我的网站:https://www.ddy-ddy.com