ubuntu部署svelte应用程序【ubuntu+nginx+svelte】

主要目的:

  • 将Node项目(以svelte sapper应用程序例)部署到ubuntu服务器中
  • 在ubuntu服务器中配置nginx,将项目部署到自己的网站上

涉及知识点:

  • 在ubuntu中安装node,npm
  • 使用pm2对node进程进行管理
  • 使用缓存设置 Nginx 服务器
一、ubuntu安装node,npm
sudo apt install nodejs  #安装node,同时npm也安装好了
sudo apt install build-essential  #某些包需要它
node -v  #查看node版本
npm -v #查看npm版本

二、将自己的node项目上传到服务器
scp 本地文件 ubuntu@公网ip:/home/ubuntu/服务器文件夹地址  #在本机终端运行

这是我服务器的项目目录


三、运行自己的node项目并用pm2管理
cd 你的项目目录
npm run build #build node项目,以安装必要的环境
pm2 start npm --name "demo" -- start  #使用pm2添加该项目,demo是你自定义的项目名
pm2 save  #保存
sudo env PATH=$PATH:/usr/local/bin pm2 startup -u USER_NAME  #USER_NAME是你当前登陆的用户名,我这里直接是ubuntu
pm2 list  #查看pm2管理的项目
curl http://localhost:5000 #查看是否启动成功(3000换成你自己项目的端口)

查看pm2守护项目
ubuntu部署svelte应用程序【ubuntu+nginx+svelte】_第1张图片
检查是否运行成功
ubuntu部署svelte应用程序【ubuntu+nginx+svelte】_第2张图片


四、安装配置nginx
  • 安装nginx
sudo apt install nginx  #安装nginx
sudo ufw allow 'Nginx HTTP'   #将Nginx HTTP 访问添加到防火墙
  • 配置nginx的server block
sudo mkdir /var/cache/nginx  #为要存储的缓存创建一个目录
sudo nano /etc/nginx/sites-available/YOUR_SITE.vhost  #修改server配置,YOUR_SITE是你自定义的名字
  • 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;  ##修改内容1(最好前面加上一个www,目的是防止www.example.com的域名在添加https的证书的时候没有被添加)
  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;  ##修改内容2,修改把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  #最好删除这个文件
  • 启动nginx
sudo nginx -t  #首先测试nginx
sudo service nginx restart  #重启nginx
sudo systemctl status nginx  #查看nginx状态
sudo tail -f /var/log/nginx/access.log  #查看nginx日志
sudo tail -f /var/log/nginx/error.log  #查看nginx日志
接着访问自己的网站域名即可

nginx正常运行的样子
ubuntu部署svelte应用程序【ubuntu+nginx+svelte】_第3张图片


五、错误排查
  • 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

你可能感兴趣的:(服务器配置,服务器,腾讯云)