当前位置: 首页 > news >正文

「 简记往来」第十八篇:云服务器部署——从购买到上线的完整流程

一、服务器选购

简记往来的后端部署在腾讯云轻量应用服务器上。

配置:

  • CPU:4核
  • 内存:4GB
  • 硬盘:160GB SSD
  • 带宽:5Mbps
  • 操作系统:Ubuntu 22.04 LTS

为什么选这个配置?

考虑因素选择理由
4核4G足够支撑当前6.8万用户的访问量
Ubuntu 22.04稳定、生态完善、社区支持好
5Mbps带宽小程序API请求量不大,5Mbps够用
轻量服务器成本低(每月约200-300元),适合独立开发者

腾讯云轻量服务器是部署Node.js小程序后端的完美起点——成本低、上手快、生态完善。

二、环境配置

服务器购买后,第一步是配置运行环境。

安装Node.js(使用nvm管理版本):

curl-o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh|bashnvminstall20nvm use20

安装MongoDB:

wget-qO- https://www.mongodb.org/static/pgp/server-6.0.asc|sudoapt-keyadd-echo"deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse"|sudotee/etc/apt/sources.list.d/mongodb-org-6.0.listsudoapt-getupdatesudoapt-getinstall-ymongodb-orgsudosystemctl start mongodsudosystemctlenablemongod

三、代码部署

代码通过Git部署到服务器:

# 克隆代码gitclone https://github.com/your-repo/jianji-backend.gitcdjianji-backend# 安装依赖npminstall# 配置环境变量cp.env.example .envvim.env# 填写数据库连接、JWT密钥等配置# 启动服务(测试)npmstart

四、进程管理:PM2

Node.js应用需要使用进程管理器来保持后台运行。

简记往来用的是PM2:

# 安装PM2npminstall-gpm2# 启动应用pm2 start app.js--namejianji-backend# 设置开机自启pm2 save pm2 startup

常用PM2命令:

pm2 list# 查看所有进程pm2 logs# 查看日志pm2 restart jianji-backend# 重启pm2 stop jianji-backend# 停止pm2 monit# 实时监控

五、安全配置

1. 防火墙配置

只开放必要的端口:

sudoufw allow22/tcp# SSHsudoufw allow80/tcp# HTTPsudoufw allow443/tcp# HTTPSsudoufwenable

2. 创建非root用户

sudoadduser deploysudousermod-aGsudodeploysu- deploy

六、部署检查清单

  • SSH登录服务器
  • 安装Node.js和npm
  • 安装MongoDB
  • 克隆代码仓库
  • 安装依赖
  • 配置环境变量
  • 使用PM2启动应用
  • 配置防火墙
  • 验证API可访问

七、总结

云服务器部署的完整流程:

  1. 买服务器→ 选择合适的配置
  2. 装环境→ 安装Node.js和MongoDB
  3. 部署代码→ Git克隆 + npm install
  4. 进程管理→ PM2守护进程
  5. 安全配置→ 防火墙 + 非root用户

每一步都有标准的操作流程,照着做就行。

下一篇,我们来聊聊Nginx配置与HTTPS证书——让API安全可用。

评论区聊聊:你的服务器部署遇到过什么问题?

http://www.jsqmd.com/news/1127271/

相关文章:

  • 3大发现:如何让NVIDIA Profile Inspector说中文,解锁显卡隐藏设置的语言奥秘
  • 07.03.每日总结
  • Docker部署openEuler talent-assessment平台:简单高效的环境搭建教程
  • DyscheOS-utils高级用法:动态资源迁移与多分区协同工作模式
  • 逆向工程实战:从二进制文件解析到自定义格式逆向分析
  • 如何用Scarab模组管理器轻松玩转空洞骑士MOD世界?
  • 工业预诊:06 品牌大乱斗:GE、西门子、国产
  • 告别百度网盘提取码焦虑:5秒智能破解的现代解决方案
  • Ceph容器化部署开发:openeuler/ceph_dev中Docker与Kubernetes集成
  • 希沃V20 AI学习机深度评测:AI精准学与专注学习系统如何重塑家庭学习环境
  • 实战案例:如何用容度原理设计一篇“Nature级别”实验
  • 商业数据分析实战:从五大核心系统到端到端项目全流程
  • GRPO训练燃料:把Hermes Agent Feedback变成强化学习信号
  • sbom-tools常见问题解答:解决使用过程中的20个典型问题
  • 龍魂系统入口一致性协议
  • openEuler/btfhub与原生BTFHub对比分析:为何openEuler需要自己的BTF解决方案
  • markword在高并发场景下变化剖析
  • DC-DC降压转换器设计与STM32控制实现
  • 3步搞定游戏语言障碍:开源自动化翻译解决方案完全指南
  • sbom-tools API参考:如何集成到你的CI/CD流水线
  • 云安全密钥管理实战:从RAM角色到KMS加密的合规架构
  • 如何为Unity游戏打造智能翻译系统:XUnity.AutoTranslator完全指南
  • CTinspector企业级部署方案:大规模集群下的流量检测架构设计
  • YOLO模型如何训练 -AI避障识别之红外目标检测数据集 红外小目标检测数据集 红外车辆行人识别数据集 Yolo格式数据集 第10217期
  • pyTelegramBotAPI:写 Telegram 机器人最省事的 Python 库
  • BSCCompiler静态代码分析:使用clang-tidy提升代码质量的完整指南
  • 一个根据中文拼写英语句子的小项目-英语句练
  • Ceph文件系统开发全攻略:openeuler/ceph_dev中CephFS架构解析
  • TestNG插件离线安装全攻略:内网环境下的Java自动化测试部署
  • 2026图片背景换色工具汇总:手机,APP、网页、小程序、电脑软件实操指南