在开始之前,请确保: - 已拥有一个VPS服务器 - 已安装Node.js环境 - 拥有sudo或root权限
# 更新系统包
sudo apt update && sudo apt upgrade -y
# 安装NGINX
sudo apt install nginx -y
# 安装Node.js和npm
sudo apt install nodejs npm -y
# 安装PM2
sudo npm install -g pm2
假设你的Node.js应用入口文件是app.js
:
# 启动应用
pm2 start app.js
# 设置开机自启
pm2 startup
pm2 save
sudo nano /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_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache_bypass $http_upgrade;
}
}
# 创建符号链接
sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
# 测试NGINX配置
sudo nginx -t
# 重启NGINX
sudo systemctl restart nginx
使用Let's Encrypt免费SSL证书:
# 安装Certbot
sudo apt install certbot python3-certbot-nginx -y
# 获取证书
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
# 设置自动续期
sudo certbot renew --dry-run
# 允许HTTP和HTTPS
sudo ufw allow 'Nginx Full'
# 启用防火墙
sudo ufw enable
pm2 list
sudo systemctl status nginx
502 Bad Gateway错误:
pm2 list
PM2应用崩溃:
pm2 logs
pm2 start app.js --name "myapp" --watch
自动重启NGINX配置错误:
sudo nginx -t
sudo tail -f /var/log/nginx/error.log
端口冲突:
sudo netstat -tulnp
通过以上步骤,你应该已经成功配置了NGINX和PM2实现VPS服务器的反向代理。