文章详情

AWS USDT代充 AWS亚马逊云服务器运行Nodejs教程

亚马逊aws2026-04-25 16:10:11Azure顶尖云

别再对着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 clonenpm install --production(跳过devDependencies)
  • 压缩包方式:本地tar -czf app.tar.gz app/ → 服务器wget your-public-bucket/app.tar.gztar -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”吧——这次,你知道接下来会发生什么。

下载.png
Telegram售前客服
客服ID
@cloudcup
联系
Telegram售后客服
客服ID
@yanhuacloud
联系