插件窝 干货文章 NGINX PM2 VPS: 让你的网站更快、更可靠

NGINX PM2 VPS: 让你的网站更快、更可靠

NGINX sudo 应用 PM2 508    来源:    2025-04-11

NGINX + PM2 + VPS 高性能网站部署方案

方案概述

这个方案结合了NGINX作为反向代理和负载均衡器,PM2作为Node.js应用进程管理器,部署在VPS上,能够提供高性能、高可用的网站服务。

核心组件

1. VPS选择与配置

  • 推荐使用至少2核CPU、4GB内存的VPS
  • 操作系统建议使用Ubuntu 20.04/22.04 LTS或CentOS 7/8
  • 确保系统已更新:sudo apt update && sudo apt upgrade -y

2. NGINX安装与配置

# 安装NGINX
sudo apt install nginx -y

# 基础配置示例 (/etc/nginx/sites-available/yourdomain.com)
server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;

    location / {
        proxy_pass http://localhost:3000; # 假设Node应用运行在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;
    }
}

# 启用配置
sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
sudo nginx -t # 测试配置
sudo systemctl restart nginx

3. PM2安装与Node.js应用管理

# 安装Node.js和PM2
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt install -y nodejs
sudo npm install -g pm2

# 启动Node应用
pm2 start app.js --name "my-app" # 或使用npm脚本: pm2 start npm -- start

# 常用PM2命令
pm2 list             # 查看运行中的应用
pm2 logs             # 查看日志
pm2 monit            # 监控应用
pm2 restart all      # 重启所有应用
pm2 save             # 保存当前进程列表
pm2 startup          # 设置开机自启

高级优化配置

1. NGINX性能优化

# /etc/nginx/nginx.conf 部分优化配置
worker_processes auto; # 自动设置工作进程数
events {
    worker_connections 1024; # 每个工作进程的连接数
    multi_accept on;
}

http {
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    server_tokens off; # 隐藏NGINX版本信息

    # Gzip压缩
    gzip on;
    gzip_disable "msie6";
    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
}

2. PM2集群模式

# 启动集群模式(利用多核CPU)
pm2 start app.js -i max --name "my-app-cluster"

3. 安全加固

# 设置防火墙
sudo ufw allow 22/tcp   # SSH
sudo ufw allow 80/tcp   # HTTP
sudo ufw allow 443/tcp  # HTTPS
sudo ufw enable

# 安装Fail2Ban防止暴力破解
sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

HTTPS配置(使用Let's Encrypt)

# 安装Certbot
sudo apt install certbot python3-certbot-nginx -y

# 获取证书
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

# 设置自动续期
sudo certbot renew --dry-run

监控与维护

  1. 日志管理:

    • NGINX日志: /var/log/nginx/
    • PM2日志: pm2 logs~/.pm2/logs/
  2. 性能监控工具:

    • htop - 系统资源监控
    • nmon - 综合性能监控
    • pm2 monit - 应用监控
  3. 备份策略:

    • 定期备份网站文件和数据库
    • 备份NGINX和PM2配置

常见问题解决

  1. 502 Bad Gateway错误:

    • 检查Node应用是否运行: pm2 list
    • 检查端口是否匹配: netstat -tulnp | grep node
  2. 性能瓶颈:

    • 使用tophtop查看资源使用情况
    • 考虑增加VPS资源配置或优化应用代码
  3. PM2应用崩溃:

    • 检查日志: pm2 logs
    • 设置自动重启: pm2 start app.js --name "my-app" --restart-delay 3000

这套方案能够为中小型网站提供稳定、高效的运行环境,根据实际流量和需求可以进一步扩展和优化。