通过NGINX作为反向代理和负载均衡器,配合PM2管理Node.js应用进程,可以有效优化VPS服务器的性能和可靠性。
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装NGINX
sudo apt install nginx -y
# 安装Node.js和npm
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt install -y nodejs
# 安装PM2
sudo npm install pm2@latest -g
# 启动应用(假设应用入口是app.js)
pm2 start app.js -i max --name "myapp"
# 保存PM2配置
pm2 save
# 设置PM2开机启动
pm2 startup
# 执行生成的命令(会显示类似下面的命令)
# sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu
编辑NGINX配置文件(通常位于/etc/nginx/sites-available/default
):
upstream node_app {
server 127.0.0.1:3000;
server 127.0.0.1:3001;
server 127.0.0.1:3002;
# 添加更多实例端口...
# 负载均衡策略(可选)
# least_conn; # 最少连接
# ip_hash; # IP哈希
}
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://node_app;
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_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache_bypass $http_upgrade;
}
}
server {
listen 443 ssl http2;
# ...其他配置...
# Gzip压缩
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
}
proxy_buffering on;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
proxy_connect_timeout 75s;
proxy_send_timeout 1800s;
proxy_read_timeout 1800s;
upstream node_app {
# ...之前配置...
keepalive 32;
}
# 测试NGINX配置
sudo nginx -t
# 重启NGINX
sudo systemctl restart nginx
# 查看应用状态
pm2 list
# 监控CPU/内存使用
pm2 monit
# 查看日志
pm2 logs
# 在server块中添加
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
-i max
会自动根据核心数创建)通过以上配置,您的VPS服务器将能够更高效地处理并发请求,实现更好的负载均衡和性能优化。