| 虚拟主机域名注册-常见问题 → 其他问题 → 其他问题 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 什么是宝塔面板 宝塔面板是一款服务器管理软件,支持 Linux 和 Windows 系统,可以通过 Web 界面轻松管理服务器,无需编写复杂的命令。 官网: https://www.bt.cn/ 宝塔面板的优势
安装宝塔面板 1.1 连接服务器 使用 SSH 连接到你的服务器: ssh root@你的服务器IP 1.2 安装宝塔面板 Ubuntu/Debian 系统: wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh CentOS 系统: yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh 安装完成后会显示以下信息: ================================================================== Congratulations! Installed successfully! ================================================================== 外网面板地址: http://你的服务器IP:8888/xxxxxxxx 内网面板地址: http://内网IP:8888/xxxxxxxx username: xxxxxxxx password: xxxxxxxx ================================================================== ⚠️ 重要:请保存好面板地址、用户名和密码! 1.3 登录宝塔面板 在浏览器中访问面板地址 输入用户名和密码登录 首次登录会提示安装"套件" 推荐安装 Nginx(暂不安装 MySQL,我们将使用 PostgreSQL) 步骤一:安装运行环境 1.1 安装 Node.js 登录宝塔面板 点击左侧菜单 【软件商店】 搜索 “Node.js” 选择 Node.js 版本管理器 点击 【安装】 安装完成后,点击 【设置】 安装 Node.js 18.x 版本(推荐) 1.2 安装 PostgreSQL 数据库 点击左侧菜单 【软件商店】 搜索 “PostgreSQL” 选择 PostgreSQL 14 或更高版本 点击 【安装】 1.3 安装 PM2 管理器 点击左侧菜单 【软件商店】 搜索 “PM2管理器” 点击 【安装】 步骤二:创建数据库 2.1 配置 PostgreSQL 点击左侧菜单 【软件商店】 找到已安装的 PostgreSQL,点击 【设置】 点击 【服务】 确保服务正在运行 点击 【root密码】 设置数据库 root 密码 2.2 创建数据库和用户 点击 【PostgreSQL 设置】 → 【数据库】 点击 【添加数据库】 填写以下信息:
点击 【提交】 步骤三:部署后端服务 3.1 上传代码到服务器 方式一:使用宝塔文件管理器(推荐) 点击左侧菜单 【文件】 进入 /www/wwwroot/ 目录 点击 【新建目录】,命名为 acceptance-notice 进入 acceptance-notice 目录 点击 【上传】,上传你的项目代码 上传整个 backend 文件夹 上传整个 frontend 文件夹 方式二:使用 Git(推荐) 进入 【终端】(宝塔面板左侧菜单) 执行以下命令: cd /www/wwwroot git clone https://你的仓库地址.git acceptance-notice 复制代码 3.2 安装后端依赖 点击左侧菜单 【终端】 执行以下命令: cd /www/wwwroot/acceptance-notice/backend npm install 3.3 配置后端环境变量 在 【文件】 菜单中进入 /www/wwwroot/acceptance-notice/backend 新建文件 .env 点击 【编辑】,填入以下内容: # 服务器端口 PORT=4000 # 数据库连接(修改密码为刚才设置的密码) DATABASE_URL=postgresql://notice_user:你的数据库密码@localhost:5432/acceptance_notices # JWT 密钥(请修改为随机字符串) JWT_SECRET=your_very_secure_random_jwt_secret_key_here # 文件存储路径 STORAGE_ROOT=./storage # 默认管理员账户(请修改) ADMIN_DEFAULT_USERNAME=admin ADMIN_DEFAULT_PASSWORD=your_secure_admin_password # 字体配置 FONT_PATH=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf FONT_FAMILY_DEFAULT=DejaVu Sans FONT_FAMILY_TITLE=DejaVu Sans # 百度 OCR API 配置(需要去百度智能云申请) BAIDU_APP_ID=your_baidu_app_id BAIDU_API_KEY=your_baidu_api_key BAIDU_SECRET_KEY=your_baidu_secret_key # Nutrient SDK 配置(需要去 Nutrient 官网申请) NUTRIENT_API_URL=https://api.nutrient.io NUTRIENT_API_KEY=your_nutrient_api_key NUTRIENT_DWS_VIEWER_API_URL=https://api.nutrient.io NUTRIENT_DWS_VIEWER_API_KEY=your_nutrient_viewer_api_key NUTRIENT_DWS_VIEWER_BASE_URL=https://cdn.nutrient.io/viewer/latest/ NUTRIENT_DWS_VIEWER_SCRIPT_URL=https://cdn.nutrient.io/viewer/latest/nutrient-viewer.js 保存文件 3.4 运行数据库迁移 在 【终端】 中执行: cd /www/wwwroot/acceptance-notice/backend npm run migrate 3.5 创建存储目录 在 【文件】 中进入 /www/wwwroot/acceptance-notice/backend 新建以下目录: storage/templates storage/generated storage/temp 步骤四:部署前端服务 4.1 安装前端依赖 在 【终端】 中执行: cd /www/wwwroot/acceptance-notice/frontend npm install 4.2 修改前端 API 配置 检查前端代码中的 API 地址配置,如果有 localhost:4000 需要修改为实际的服务器地址。 通常在以下文件中: src/api/index.js src/config.js vite.config.js 注意:如果使用 Nginx 反向代理(推荐),前端可以保持使用相对路径 /api,不需要修改。 4.3 构建前端 在 【终端】 中执行: cd /www/wwwroot/acceptance-notice/frontend npm run build 构建完成后,会生成 dist 目录。 步骤五:配置网站和反向代理 5.1 创建网站 点击左侧菜单 【网站】 点击 【添加站点】 填写以下信息:
点击 【提交】 5.2 配置前端网站 在网站列表中,找到刚创建的站点,点击 【设置】 点击 【配置文件】 修改配置如下(添加前端路由支持和静态资源缓存): location / { try_files $uri $uri/ /index.html; } location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ { expires 1y; add_header Cache-Control "public, immutable"; } 点击 【保存】 5.3 创建后端 API 网站 点击左侧菜单 【网站】 点击 【添加站点】 填写以下信息:
点击 【提交】 5.4 配置后端反向代理 在网站列表中找到后端站点,点击 【设置】 点击 【反向代理】 点击 【添加反向代理】 填写以下信息:
点击 【提交】 5.5 配置反向代理高级选项 在刚创建的反向代理列表中,点击 【配置】 替换为以下配置: # PROXY-START/ location / { proxy_pass http://127.0.0.1:4000; 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_set_header REMOTE-HOST $remote_addr; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_http_version 1.1; # proxy_hide_header Upgrade; add_header X-Cache $upstream_cache_status; } # PROXY-END/ # 静态文件直接提供 location /files/ { alias /www/wwwroot/acceptance-notice/backend/storage/; expires 30d; add_header Cache-Control "public, immutable"; } 点击 【保存】 5.6 修改上传大小限制 在后端站点设置中,点击 【配置文件】 在 server 块中添加: client_max_body_size 50M; 复制代码 点击 【保存】 步骤六:配置 SSL 证书 6.1 使用 Let’s Encrypt 免费证书(推荐) 在站点设置中,点击 【SSL】 选择 【Let’s Encrypt】 选项卡 填写邮箱地址 勾选需要申请证书的域名 点击 【申请】 等待证书申请完成 开启 【强制 HTTPS】 6.2 手动上传证书(如有自己的证书) 在站点设置中,点击 【SSL】 选择 【其他证书】 选项卡 填写证书内容和密钥 点击 【保存】 步骤七:配置 PM2 守护进程 7.1 添加后端项目 点击左侧菜单 【软件商店】 找到 PM2管理器,点击 【设置】 点击 【添加项目】 填写以下信息:
点击 【提交】 7.2 添加前端项目(可选) 如果需要 PM2 管理 serve 静态文件服务: 在 PM2 管理器中,点击 【添加项目】 填写以下信息:
点击 【提交】 注意:如果使用 Nginx 直接托管静态文件,可以不添加前端 PM2 项目。 7.3 查看 PM2 状态 在 PM2 管理器中,可以看到所有项目的运行状态 可以进行 【重启】、【停止】、【删除】 等操作 点击 【日志】 查看运行日志 常见问题 Q1: PM2 项目启动失败? 解决方法: 检查 Node.js 版本是否正确 检查 .env 文件是否存在且配置正确 检查端口 4000 是否被占用 查看 PM2 日志:在 PM2 管理器中点击 【日志】 Q2: 前端页面 404? 解决方法: 检查前端是否已构建:ls /www/wwwroot/acceptance-notice/frontend/dist 检查网站根目录是否正确 检查 Nginx 配置中的 try_files 规则 Q3: API 请求失败? 解决方法: 检查后端 PM2 项目是否正在运行 检查反向代理配置是否正确 查看 Nginx 错误日志:网站设置 → 【日志】 检查防火墙是否开放了相关端口 Q4: 数据库连接失败? 解决方法: 检查 PostgreSQL 服务是否运行 检查 .env 文件中的数据库连接字符串 确认数据库用户名和密码正确 确认数据库已创建 Q5: 上传文件失败? 解决方法: 检查 Nginx 的 client_max_body_size 配置 检查存储目录权限:在宝塔文件管理器中,右键 storage 目录 → 【权限】 → 设置为 755 检查磁盘空间是否充足 Q6: SSL 证书申请失败? 解决方法: 确保域名已正确解析到服务器 IP 确保防火墙开放了 80 和 443 端口 检查域名 DNS 配置是否正确 等待 DNS 生效(可能需要几分钟到几小时) 维护管理 日常操作 查看 PM2 项目状态 点击左侧菜单 【软件商店】 找到 PM2管理器,点击 【设置】 查看所有项目的运行状态 重启服务 方式一:在 PM2 管理器中操作 找到对应项目 点击 【重启】 方式二:使用终端 pm2 restart acceptance-backend pm2 restart acceptance-frontend 查看日志 方式一:在 PM2 管理器中 找到对应项目 点击 【日志】 方式二:使用终端 pm2 logs acceptance-backend pm2 logs acceptance-frontend 更新代码 在 【文件】 中更新代码文件 或在 【终端】 中执行 git pull 如果更新了后端代码,需要重新安装依赖: cd /www/wwwroot/acceptance-notice/backend npm install pm2 restart acceptance-backend 复制代码 如果更新了前端代码,需要重新构建: cd /www/wwwroot/acceptance-notice/frontend npm install npm run build 复制代码 备份数据 使用宝塔自动备份 点击左侧菜单 【计划任务】 添加备份数据库任务 添加备份网站任务 手动备份数据库 在 【终端】 中执行: pg_dump -U notice_user acceptance_notices > backup_$(date +%Y%m%d).sql 手动恢复数据库 psql -U notice_user acceptance_notices < backup_20260120.sql 监控资源 点击左侧菜单 【监控】 查看系统资源使用情况 设置告警通知(可选) 宝塔面板常用功能 文件管理 路径: 左侧菜单 → 【文件】 功能: 上传、下载、编辑、删除文件 快捷键: 支持在线代码编辑器 终端 路径: 左侧菜单 → 【终端】 功能: 执行 Linux 命令 无需 SSH: 直接在浏览器中使用终端 防火墙 路径: 左侧菜单 → 【安全】 功能: 配置防火墙规则 建议开放端口: 22(SSH)、80(HTTP)、443(HTTPS)、8888(宝塔) 计划任务 路径: 左侧菜单 → 【计划任务】 功能: 定时执行脚本、备份数据等 示例:每天凌晨 2 点备份数据库 部署检查清单 部署完成后,请检查以下项目: 宝塔面板已安装并可以访问 Node.js 18.x 已安装 PostgreSQL 已安装并运行 PM2 管理器已安装 数据库已创建 后端代码已上传并安装依赖 后端 .env 文件已配置 数据库迁移已执行 前端代码已上传并构建 前端网站已创建(Nginx) 后端反向代理已配置 PM2 项目已添加并运行 SSL 证书已申请(生产环境) 可以通过浏览器访问前端 API 请求正常工作 文件上传功能正常 数据库读写正常 安全建议 修改宝塔面板端口:默认 8888,建议修改为其他端口 绑定访问 IP:限制只能从特定 IP 访问面板 开启面板 SSL:使用 HTTPS 访问宝塔面板 定期备份数据:使用计划任务自动备份 更新系统和软件:保持软件为最新版本 监控资源使用:避免资源耗尽导致服务不可用 配置告警通知:在服务异常时及时收到通知 快速命令参考 虽然使用宝塔面板可以图形化操作,但了解一些常用命令也很有帮助: # 查看 PM2 状态 pm2 status # 重启所有 PM2 项目 pm2 restart all # 查看 PM2 日志 pm2 logs # 进入 PostgreSQL sudo -u postgres psql # 查看磁盘使用 df -h # 查看内存使用 free -h # 查看 Nginx 状态 systemctl status nginx # 重启 Nginx systemctl restart nginx # 查看 Nginx 错误日志 tail -f /www/server/nginx/logs/error.log
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| >> 相关文章 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 没有相关文章。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||






