你是不是也有过这样的想法:“我想把自己的Node.js项目上线,让别人能访问,可服务器这玩意儿太复杂了,完全不知道从哪开始?”别担心,今天这篇文章就是为你准备的。不管你是刚学Node.js的新手,还是已经写了个小项目的开发者,只要跟着我一步步操作,保证你能在2小时内把项目稳稳当当地跑在云端。

我会用阿里云的轻量应用服务器(简称“轻量服务器”)来演示整个部署流程。为什么选它?因为它便宜、简单、配置快,特别适合个人项目、学习练手或者小型上线需求。而且,它自带一键配置系统,连域名解析都能帮你搞定一半,简直是新手福音。
第一步:买一台阿里云轻量服务器
打开阿里云官网,登录你的账号。如果你还没账号,先注册一个,过程很简单,手机验证码一收就完事。
然后在搜索框里输入“轻量应用服务器”,点进产品页。你会发现有各种套餐,比如1核1G、1核2G,带宽也有1M、2M、3M不等。对于Node.js这种轻量级后端服务,1核2G + 2M带宽完全够用,一个月也就几十块钱,学生党也扛得住。
重点来了——想省钱?那你一定要领个阿里云优惠券!新用户经常能领到几百块的大额券,老用户也有小额返利。我上次买服务器直接省了将近一半,香得很。点击链接就能领,不用白不用,赶紧去薅一波羊毛!
选好配置后,操作系统建议选择 Ubuntu 20.04 或 22.04 LTS 版本。为什么?因为稳定、社区支持多,而且大多数Node.js教程都基于Linux环境,出问题也好搜解决方案。
第二步:连接服务器,进入命令行世界
服务器买好了,接下来就是“登上去”。阿里云会给你分配一个公网IP地址,比如 47.98.xxx.xxx,还有一个默认用户名(一般是 root)和密码。
Windows 用户可以用 PuTTY,但我更推荐下载一个叫 Xshell 或者 FinalShell 的工具,界面友好,还能保存会话。Mac 和 Linux 用户直接打开终端,输入下面这行命令:
ssh root@你的公网IP
第一次连接会提示你确认指纹,输入 yes 就行。然后输入密码(注意:输密码的时候屏幕上不会显示号,这是正常的,别慌,输完回车就行)。
成功登录后,你会看到一个黑乎乎的命令行界面,别怕,这就是你的服务器大脑。接下来所有操作都在这里完成。
第三步:安装 Node.js 和 npm
现在服务器是空的,啥都没有。我们得先把 Node.js 装上。别用系统自带的旧版本,容易出问题。推荐用 NVM(Node Version Manager)来安装,灵活又方便。
先执行这条命令下载并安装 NVM:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
装完之后,退出终端重新登录,或者运行:
source ~/.bashrc
然后就可以用 NVM 安装 Node.js 了。我建议装最新的长期支持版(LTS),比如 v18 或 v20:
nvm install 18
装完后验证一下:
node -v
npm -v
如果看到版本号出来了,恭喜你,Node 环境已经搞定了!
第四步:上传你的项目代码
本地项目怎么传到服务器?最简单的办法是用 SCP 命令。假设你的项目文件夹叫 my-node-app,你想传到服务器的 /root/ 目录下。
在你本地电脑的终端(不是服务器!)执行:
scp -r my-node-app root@你的公网IP:/root/
输入密码后,文件就开始上传了。传完之后,回到服务器终端,进入项目目录:
cd /root/my-node-app
然后安装依赖:
npm install
注意:如果你的项目用了 MySQL、Redis 这类数据库,记得在服务器上也装一遍,或者考虑用云数据库服务。不过那是另一个话题了,今天我们先搞定纯 Node.js 项目。
第五步:让项目一直运行,别一关终端就挂
很多人犯的错误是:用 node app.js 启动服务,然后一关终端,网站就打不开了。为啥?因为进程被杀掉了。
解决办法是用 PM2 —— 一个超好用的 Node.js 进程管理工具。它能让程序后台运行、自动重启、记录日志,简直神器。
先全局安装 PM2:
npm install -g pm2
然后启动你的项目:
pm2 start app.js --name "my-app"
这里的 app.js 改成你实际的入口文件名。启动后,PM2 会给你返回一个进程列表,能看到状态是 online 就说明跑起来了。
以后你可以用这些命令管理项目:
pm2 restart my-app—— 重启pm2 logs my-app—— 查看实时日志pm2 stop my-app—— 停止pm2 startup—— 设置开机自启(非常重要!)
执行完 pm2 startup 后,它会提示你复制一条命令粘贴执行,做完之后,哪怕服务器重启,你的网站也会自动跑起来,再也不用半夜爬起来手动启动了。
第六步:开放端口,让全世界都能访问
现在项目在跑,但你可能发现外网还是打不开。为什么?因为阿里云的安全组默认只开了几个端口,比如 SSH 的 22 端口,HTTP 的 80 端口没开。
回到阿里云控制台,找到你的轻量服务器实例,点击“防火墙”或“安全组”设置。添加一条规则:
- 协议类型:TCP
- 端口范围:比如你的 Node.js 服务跑在 3000 端口,就填 3000
- 源 IP:0.0.0.0/0(表示允许所有人访问)
保存后,再试一下在浏览器输入:http://你的公网IP:3000,如果看到你的网页或接口返回数据,那就成了!
不过带端口号访问不太美观,我们可以用 Nginx 反向代理,把 80 端口转发到 3000,这样用户直接输 IP 就能访问。
加分项:用 Nginx 做反向代理(更专业)
先安装 Nginx:
apt update
apt install nginx -y
然后编辑配置文件:
vim /etc/nginx/sites-available/default
找到 location / 那一段,改成:
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
保存退出,测试配置是否正确:
nginx -t
没问题的话重启 Nginx:
systemctl restart nginx
现在再去浏览器输入 http://你的公网IP(不加端口),应该就能看到你的网站了!
常见问题 & 小贴士
Q:我的 Node.js 服务启动了,但访问不了?
A:检查三件事:1)PM2 是否 running;2)防火墙是否放行对应端口;3)代码里监听的是不是 0.0.0.0 而不是 127.0.0.1。
Q:如何绑定自己的域名?
A:在阿里云买个域名,然后去“域名解析”里添加一条 A 记录,指向你的服务器公网 IP。等解析生效后,再在 Nginx 配置里加上 server_name 你的域名; 就行了。
小贴士:定期用 df -h 查看磁盘使用情况,轻量服务器硬盘不大,日志太多容易占满。可以配合 PM2 的日志轮转功能,避免炸盘。
你已经是个成熟的开发者了
看到这里,你已经完成了从零到一的跨越。买服务器、连终端、装环境、传代码、后台运行、开放访问……这一套流程走下来,你不再是只会本地跑 demo 的新手了。
接下来你可以尝试部署更复杂的项目,比如前后端分离的 Vue + Node 应用,或者加上数据库、HTTPS 证书,一步步打造属于你自己的线上作品集。
最重要的是:别怕犯错。我第一次部署的时候,整整折腾了一天,不是端口没开就是权限不对。但现在回头看,都是宝贵的经验。
最后再提醒一次,新用户一定要去领个阿里云优惠券,能省不少钱。说不定这顿火锅的钱,就靠这张券省出来了呢?
好了,现在就去动手吧!你的第一个线上 Node.js 应用,正在等着你点亮它。
内容均以整理官方公开资料,价格可能随活动调整,请以购买页面显示为准,如涉侵权,请联系客服处理。
本文由星速云发布。发布者:星速云。禁止采集与转载行为,违者必究。出处:https://www.67wa.com/149188.html