AWS USDT代充 AWS亚马逊云服务器运行Nodejs教程
别再对着AWS控制台发呆了:一篇让你笑着把Node.js跑上云的实战指南
朋友,你是不是也经历过——本地npm start跑得好好的,一上云就404?SSH连上去发现node -v报错“command not found”?安全组开了80端口,浏览器却显示“无法连接”?别慌,这不是你菜,是AWS故意把新手引导藏在了第7层导航菜单里。本文不讲概念,不画架构图,只干一件事:带你从零开始,在AWS上亲手把一个Hello World Express服务稳稳当当跑起来,并且能被全世界访问——中间连重启EC2实例的骚操作都给你备好了。
第一步:选对EC2实例,比挑对象还重要
AWS免费套餐里最香的是一年免费t2.micro(1核1G),但注意:它只限新账户首年,且不能和t3.micro混用。别急着点“Launch Instance”,先打开AWS Free Tier页面确认你的账户资格。选镜像时强烈推荐Amazon Linux 2023(不是AL2,也不是Ubuntu!),原因很实在:轻量、更新快、官方文档全,而且yum装Node.js比apt-get少踩三个坑。
安全组设置:别让防火墙成了你的第一个背锅侠
创建实例时,安全组(Security Group)必须手动配置。默认只开22端口(SSH),你要手动加两条规则:
- 类型:HTTP,协议:TCP,端口范围:80,源:0.0.0.0/0(允许所有人访问)
- 类型:Custom TCP,端口范围:3000(或你Node应用监听的端口),源:0.0.0.0/0(开发调试用,上线前建议改成特定IP)
记住:安全组是“有状态”的,出站规则默认全放行,不用额外配。如果部署完打不开网页,第一反应不是代码问题,而是翻回去检查这里——90%的“连不上”都栽在这儿。
第二步:连上服务器,别让SSH密码成为心理阴影
拿到.pem密钥后,先改权限:chmod 400 your-key.pem。Windows用户请用PuTTYgen转ppk格式;Mac/Linux直接:ssh -i "your-key.pem" ec2-user@你的公网IP。首次登录用户名是ec2-user(不是ubuntu,不是root!)。如果提示“Permission denied (publickey)”,八成是密钥路径错了,或者.pem没chmod——别骂AWS,骂自己。
AWS USDT代充 顺手解决一个经典陷阱:sudo密码?根本没设!
很多人输完sudo yum update被要求输密码,一试再试,输错三次直接锁死会话。真相是:Amazon Linux默认禁用root密码,且ec2-user无需密码即可sudo。所以直接回车就行。如果真把自己锁了(比如改了sudoers文件),别重装系统——用AWS控制台停机→分离根卷→挂载到另一台临时实例→修改/etc/sudoers→再挂回去,整个过程15分钟搞定。但建议:别作死改sudoers。
第三步:装Node.js?别pip install,用官方二进制包
Amazon Linux 2023自带dnf,但dnf install nodejs装的是v18.x,而很多老项目依赖v16。更稳妥的方式是去Node官网下二进制包:
cd /tmp
wget https://nodejs.org/dist/v18.19.0/node-v18.19.0-linux-x64.tar.xz
tar -xf node-v18.19.0-linux-x64.tar.xz
sudo mv node-v18.19.0-linux-x64 /opt/nodejs
sudo ln -sf /opt/nodejs/bin/node /usr/local/bin/node
sudo ln -sf /opt/nodejs/bin/npm /usr/local/bin/npm
验证:node -v && npm -v。输出v18.19.0和9.x就成功了。为什么不用nvm?因为EC2上长期运行的服务,版本固化比灵活切换更重要——nvm是开发神器,不是生产良方。
第四步:上传代码,别再用SCP传100个文件了
本地写好Express应用(app.js + package.json),别用scp一个个传。推荐两招:
- Git方式(推荐):GitHub建私有库 → 服务器上
git clone→npm install --production(跳过devDependencies) - 压缩包方式:本地
tar -czf app.tar.gz app/→ 服务器wget your-public-bucket/app.tar.gz→tar -xzf app.tar.gz
重点:运行前执行npm ci而非npm install,它按package-lock.json精确还原依赖,避免“在我机器上能跑”的玄学。
第五步:守护进程?PM2不是可选项,是必选项
直接node app.js启动,关掉终端就凉凉。装PM2:npm install -g pm2。然后:
pm2 start app.js --name "my-node-app"
pm2 save
pm2 startup
pm2 startup会生成开机自启脚本(Amazon Linux用systemd),执行它提示的那条sudo命令。此后重启实例,你的服务自动拉起。常用命令:
pm2 logs:实时看日志pm2 restart my-node-app:热重启pm2 monit:可视化监控CPU/内存
PS:别用forever,它已停止维护;也别信“systemd写个service文件更原生”——PM2的log轮转、内存监控、集群模式,省下的时间够你多喝三杯咖啡。
第六步:让世界访问你——Nginx反向代理才是终极姿势
直接暴露3000端口?不行。既不安全(攻击面大),又不专业(浏览器地址栏带:3000太土)。装Nginx:sudo dnf install nginx,然后编辑/etc/nginx/conf.d/node-app.conf:
server {
listen 80;
server_name your-domain.com; # 或直接用IP
location / {
proxy_pass http://127.0.0.1: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;
proxy_cache_bypass $http_upgrade;
}
}
启动Nginx:sudo systemctl enable nginx && sudo systemctl start nginx。现在访问公网IP,看到Hello World,才算真正落地。
彩蛋:域名+HTTPS?Let's Encrypt三行搞定
买个域名(如xxx.com),DNS解析到EC2公网IP。然后:
sudo dnf install certbot python3-certbot-nginx
sudo certbot --nginx -d xxx.com
# 按提示选“2: Redirect to https”
Certbot自动改Nginx配置、申请证书、配置自动续期。从此你的Node应用拥有绿色小锁,老板看了直呼专业。
最后送你一句AWS生存法则
AWS不是黑盒子,它是乐高——每块积木(EC2/S3/Route53)都清晰可拆。别怕点错,所有操作都有回滚路径;别迷信教程,官方文档永远最新;最重要的是:每次改完配置,记下命令和截图。三个月后你会感谢那个在终端里认真敲history > aws-notes.txt的自己。现在,去你的控制台,点下那个“Launch Instance”吧——这次,你知道接下来会发生什么。

