1. 安装Node.js环境
# 安装必要工具
sudo yum install -y git curl
# 安装 NVM
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
# 载入 NVM(如果终端未自动加载)
source ~/.bashrc
# 安装最新 LTS 版 Node.js
nvm install --lts
# 设置默认版本
nvm alias default node
# 验证安装
node -v && npm -v
2. 安装PM2进程管理器
# 全局安装PM2
sudo npm install -g pm2
3. 准备项目文件
# 登录VPS
ssh user@your-vps-ip
# 创建目录
sudo mkdir -p /var/www/redpoint
# 上传项目文件后解压
sudo unzip /tmp/redpoint.zip -d /var/www/redpoint
# 设置权限
sudo chown -R $USER:$USER /var/www/redpoint
4. 安装依赖并配置环境变量
# 进入项目目录
cd /var/www/redpoint
# 安装依赖
npm install
# 创建环境变量文件
nano .env
在.env文件中添加:
PORT=3000
OPENROUTER_API_KEY=your_openrouter_api_key_here
5. 使用PM2启动服务
# 启动服务
pm2 start server.js --name "redpoint-system"
# 设置开机自启
pm2 startup
sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u $USER --hp /home/$USER
pm2 save
# 检查状态
pm2 status
6. 配置Apache反向代理
创建反向代理配置文件:
sudo nano /etc/httpd/conf.d/redpoint.conf
添加配置内容:
<VirtualHost *:80>
ServerName redpoint.您的域名.com
DocumentRoot /var/www/redpoint
# 静态文件直接由Apache提供
<Directory /var/www/redpoint>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# API请求代理到Node.js服务
ProxyRequests Off
ProxyPreserveHost On
ProxyVia Full
<Location /api>
ProxyPass http://127.0.0.1:3000/api
ProxyPassReverse http://127.0.0.1:3000/api
</Location>
ErrorLog /var/log/httpd/redpoint_error.log
CustomLog /var/log/httpd/redpoint_access.log combined
</VirtualHost>
7. 启用必要的Apache模块
# 启用proxy模块
sudo yum install -y mod_proxy_html mod_proxy
# 重新加载Apache配置
sudo systemctl restart httpd
8. 配置防火墙
# 如果使用firewalld
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
# 或者如果使用iptables
sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT
sudo service iptables save
9. 配置DNS
添加DNS记录,将redpoint.您的域名.com
指向您的VPS IP地址
10. 测试访问
访问 http://redpoint.您的域名.com/ 测试网站是否正常工作
故障排除
- 如果遇到权限问题,请检查SELinux:
# 查看SELinux状态
sestatus
# 如果启用了SELinux,可以允许Apache建立网络连接
sudo setsebool -P httpd_can_network_connect 1
- 检查Node.js服务日志:
pm2 logs redpoint-system
- 检查Apache错误日志:
sudo tail -f /var/log/httpd/redpoint_error.log
这样配置后,静态内容会由Apache直接提供,而API请求会转发到Node.js服务,充分利用您现有的LAMP环境。