Node.js 教程
Node.js 基础
Node.js 概述
Node.js 环境搭建
Node.js 基础语法
Node.js 模块
Node.js 异步编程
Node.js 核心模块
Node.js文件系统
Node.js路径模块(path)
Node.js的HTTP模块
Node.js的url模块
Node.js流模块(stream)
Node.js 常用工具与框架
npm 与包管理
Express 框架
数据库操作
Socket.io 与 WebSocket
Node.js 实战项目
Web 应用开发
API 开发
爬虫应用
自动化脚本
Node.js部署与优化
部署 Node.js 应用
Node.js性能优化
Node.js应用的安全性
Node.js 高级话题
Node.js中的设计模式
TypeScript 与 Node.js
GraphQL 与 API 开发
-
+
首页
部署 Node.js 应用
### **1. 选择云服务提供商** - **Amazon Web Services (AWS)**: - **优势**:功能强大、可扩展性好,提供 Elastic Beanstalk 等一站式部署服务。 - **服务**:EC2 (云服务器)、RDS (数据库)、S3 (存储)。 - **定价**:按需付费、多种计费方式。 - **Microsoft Azure**: - **优势**:企业级支持、与微软生态系统集成紧密 (如 Active Directory)。 - **服务**:虚拟机、Azure Cosmos DB、Azure Blob Storage。 - **定价**:根据资源使用量计费。 - **Google Cloud Platform (GCP)**: - **优势**:数据处理能力强、机器学习服务出色。 - **服务**:Compute Engine、Cloud SQL、Cloud Storage。 - **定价**:性价比高,部分服务有免费套餐。 - **Heroku**: - **优势**:部署简单快捷,适合小型项目和快速原型开发。 - **服务**:预配置的 Node.js 支持、免费层可用。 - **定价**:免费层有限制,付费 Plans 按需求扩展。 - **DigitalOcean**: - **优势**:简单易用,价格实惠,社区支持好。 - **服务**:Droplets (云服务器)、Kubernetes、Block Storage。 - **定价**:按小时计费,最低 $5/月。 **选择要点**: - 根据项目规模、预算和团队熟悉程度选择。 - 考虑地理位置,靠近用户可减少延迟。 - 关注供应商安全和合规性认证。 --- ### **2. 配置服务器** - **选择操作系统**: - **Ubuntu/Debian**:适合基于 Debian 的包管理工具 (apt)。 - **CentOS/RHEL**:企业级支持,稳定性好,使用 yum 或 dnf 包管理。 - **推荐**:Ubuntu 20.04 LTS 或 22.04 LTS。 - **安装 Node.js**: ```bash # 使用 NodeSource 安装 Node.js curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs ``` 或 使用 NVM (Node Version Manager): ```bash curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" nvm install node ``` - **配置防火墙**: - 允许 HTTP (80) 和 HTTPS (443) 端口: ```bash sudo ufw allow 80/tcp sudo ufw allow 443/tcp ``` - 禁用不必要端口。 --- ### **3. 上传代码** - **通过 Git 推送**: - 在服务器上初始化 Git: ```bash sudo apt-get install git git clone [your-repo-url] /var/www/my-app ``` - 使用 SSH 预防安全问题: ```bash ssh-copy-id user@[server-ip] ``` - **手动上传**: - 使用 FTP 客户端 (如 FileZilla) 或 `scp`: ```bash scp -r /local/path user@[server-ip]:/server/path ``` --- ### **4. 安装依赖** - 打开终端并进入项目目录: ```bash cd /var/www/my-app ``` - 安装项目依赖: ```bash npm install ``` --- ### **5. 配置环境变量** - 创建 `.env` 文件或环境变量: ```bash # example .env NODE_ENV=production PORT=3000 DATABASE_URL=mongodb://localhost/mydb ``` - 在服务器上设置环境变量: ```bash export NODE_ENV=production ``` --- ### **6. 启动应用** - **使用 pm2 (进程管理器) 保持应用运行**: - 安装 pm2: ```bash npm install -g pm2 ``` - 启动应用: ```bash pm2 start app.js --name "my-app" ``` - 查看应用状态: ```bash pm2 status ``` - 将应用开机自启: ```bash pm2 startup pm2 save ``` - **使用系统服务 (Systemd)**: - 创建服务文件: ```bash sudo nano /etc/systemd/system/myapp.service ``` - 配置文件: ```ini [Unit] Description=My Node.js App [Service] ExecStart=/usr/local/bin/node /var/www/my-app/app.js Restart=always User=www-data Group=www-data Environment=NODE_ENV=production [Install] WantedBy=multi-user.target ``` - 启动服务: ```bash sudo systemctl start myapp sudo systemctl enable myapp ``` --- ### **7. 配置反向代理 (Nginx)** - 安装 Nginx: ```bash sudo apt-get install nginx ``` - 配置 Nginx: ```bash sudo nano /etc/nginx/sites-available/myapp ``` - 配置文件: ```nginx server { listen 80; server_name yourdomain.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: ```bash sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/ sudo systemctl restart nginx ``` --- ### **8. 配置 HTTPS (Let's Encrypt)** - 安装 Certbot: ```bash sudo apt-get install certbot python3-certbot-nginx ``` - 获取并安装证书: ```bash sudo certbot --nginx -d yourdomain.com ``` - 自动续期: ```bash sudo certbot renew --dry-run ``` --- ### **9. 监控与日志** - 使用 pm2 监控: ```bash pm2 monit ``` - 查看 Nginx 日志: ```bash sudo tail -f /var/log/nginx/access.log ``` --- ### **总结** 部署 Node.js 应用涉及从选择服务器、安装依赖、配置环境到启动服务和监控的流程。以下是关键点: 1. 选择合适的云服务提供商。 2. 配置服务器并安装 Node.js。 3. 使用 Git 或其他工具上传代码。 4. 安装依赖并设置环境变量。 5. 用 pm2 或 Systemd 保持应用运行。 6. 配置 Nginx 作为反向代理。 7. 配置 HTTPS 以确保安全。 根据项目需求和预算选择合适的服务,并确保应用性能和安全性的最佳实践。
wwbang
2025年2月27日 11:29
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码