在CentOS 7 + LAMP环境上部署项目

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/ 测试网站是否正常工作

故障排除

  1. 如果遇到权限问题,请检查SELinux:
# 查看SELinux状态
sestatus

# 如果启用了SELinux,可以允许Apache建立网络连接
sudo setsebool -P httpd_can_network_connect 1
  1. 检查Node.js服务日志:
pm2 logs redpoint-system
  1. 检查Apache错误日志:
sudo tail -f /var/log/httpd/redpoint_error.log

这样配置后,静态内容会由Apache直接提供,而API请求会转发到Node.js服务,充分利用您现有的LAMP环境。

已有 0 条评论 新浪微博
滚动至顶部