服务器跑 nestjs/node + react/html 应用,最快的方式是用宝塔,可以直接用于生产。
准备工作
- 购买服务器(对应 IP 如:1.2.3.4)
- 购买域名( pauli.cn)
- 域名备案
- dns解析( A 记录到 ... )
宝塔安装
bt.cn (需求提前注册一个bt账号,不需要实名)
查看服务器版本
$ uname -a
Linux 3.10.0-862.14.4.el7.x86_64 #1 SMP Wed Sep 26 15:12:11 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
选择对应命令
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
启动后,一定要记下来(后续只能通过 ssh 登录服务器后,执行 bt 重置pwd)
- 面板地址
- 登录账号
- 登录pwd
服务器设置
安装必要的软件:
- Nginx
- Node/NVM
- MySQL
- php + phpmyadmin(如果不想 mysql 服务/端口到公网,可以通过网页管理数据库)
配置:
- 云服务商,开放对应的公网端口:22、80、443、888(phpmyadmin 的)
- 主网站 pauli.cn 可以是纯静态的
- node 服务,可以通过宝塔配置,也可以手动启动后台进程
nohup npm run start &(如对应服务端口 3000) - nginx 转发,可以通过宝塔配置,也可以手动设置
server {
listen 80;
server_name pauli.cn; # 替换为你的域名或IP
location /api/ {
proxy_pass http://127.0.0.1:3000; # 替换为 node 服务端口
}
location / {
root /www/wwwroot/web; # 替换为你的React应用构建后的文件夹路径
try_files $uri $uri/ /index.html;
}
}
申请 https 证书
宝塔可以申请免费的三个月,要经常续费,也可以购买供应商的,一年几百块。
本地打包后上传
- 本地打包后上传更快:
zip -r web.zip dist/* - 使用 filezilla 或者 scp
scp -r local_react/dist root@pauli.cn:/www/wwwroot/web ssh root@pauli.cn登录服务器端解压unzip web.zip- 也可以使用 ssh 直接远程操作
ssh root@pauli.cn "cd /www/wwwroot/web/; unzip web.zip"