从零搭建到实战在阿里云CentOS服务器上用Node.js部署你的第一个Web应用当你第一次拿到一台崭新的阿里云ECS服务器面对CentOS系统的命令行界面可能会感到既兴奋又迷茫。本文将带你完成从服务器环境配置到Node.js应用部署的全流程最终实现一个可通过公网访问的Web服务。不同于零散的教程我们以实战项目驱动的方式将Node.js安装、代码部署、进程管理、安全配置等环节串联成一个有机整体特别适合刚接触Linux服务器和Node.js的开发者。1. 服务器基础环境准备在开始Node.js环境搭建前我们需要确保服务器基础环境就绪。登录阿里云控制台完成以下操作创建安全组规则在ECS实例的安全组配置中预先开放以下端口22端口SSH连接80端口HTTP服务443端口HTTPS服务3000端口示例应用默认端口连接服务器使用SSH客户端连接你的CentOS服务器ssh rootyour_server_ip系统更新执行系统更新确保所有软件包为最新版本yum update -y yum upgrade -y提示生产环境建议创建普通用户而非直接使用root本文为简化流程使用root操作。2. Node.js环境搭建与版本管理Node.js的安装有多种方式我们推荐使用nvmNode Version Manager进行管理它可以轻松切换不同Node.js版本。2.1 安装nvm执行以下命令安装nvmcurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash安装完成后重新加载bash配置source ~/.bashrc验证安装是否成功nvm --version2.2 安装指定Node.js版本通过nvm安装当前LTS版本的Node.jsnvm install --lts安装完成后检查版本node -v npm -v常用nvm命令参考命令说明nvm list查看已安装版本nvm use version切换Node.js版本nvm install version安装指定版本nvm alias default version设置默认版本3. 示例Express应用部署现在我们来部署一个简单的Express应用作为示例。3.1 初始化项目创建项目目录并初始化mkdir myapp cd myapp npm init -y npm install express创建app.js文件并添加以下内容const express require(express) const app express() const port 3000 app.get(/, (req, res) { res.send(Hello World from CentOS!) }) app.listen(port, () { console.log(App listening at http://localhost:${port}) })3.2 测试运行启动应用进行测试node app.js在本地浏览器访问http://your_server_ip:3000应该能看到Hello World from CentOS!的响应。4. 生产环境部署优化直接使用node命令运行应用不够健壮我们需要进行生产环境优化。4.1 使用PM2进程管理安装PM2并启动应用npm install -g pm2 pm2 start app.js --name myapp常用PM2命令pm2 list查看运行中的应用pm2 logs查看日志pm2 restart app_name重启应用pm2 delete app_name停止并删除应用4.2 配置系统启动确保应用在服务器重启后自动运行pm2 startup pm2 save4.3 Nginx反向代理可选为提升性能和安全可以配置Nginx作为反向代理安装Nginxyum install nginx -y systemctl start nginx systemctl enable nginx配置Nginx 编辑/etc/nginx/conf.d/myapp.confserver { listen 80; server_name your_domain.com; 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_cache_bypass $http_upgrade; } }测试并重载配置nginx -t systemctl reload nginx5. 安全加固与监控部署完成后还需要进行一些安全加固防火墙配置firewall-cmd --permanent --add-port80/tcp firewall-cmd --permanent --add-port443/tcp firewall-cmd --reload日志监控使用pm2 logs查看应用日志配置日志轮转防止磁盘占满定期备份备份项目代码备份数据库如有考虑使用阿里云快照功能在实际项目中我发现PM2的日志管理功能特别实用可以通过pm2 logs --lines 200查看最近200行日志快速定位问题。另外使用nvm管理Node.js版本可以避免很多兼容性问题特别是在团队协作时确保开发和生产环境一致。