# 公网访问配置检查清单 ## ✅ 已完成的配置修改 ### 1. 后端配置 #### 端口配置 - ✅ `application-dev.yml`: `server.port: 8082` - ✅ `application-prod.yml`: `server.port: ${server.port:8082}` - ✅ `ProductServiceImpl.java`: 默认端口改为 `8082` #### 前端URL配置(用于生成商品链接) - ✅ `application-dev.yml`: `app.frontend.url: http://175.178.252.59` - ✅ `application-prod.yml`: `app.frontend.url: ${app.frontend.url:http://175.178.252.59}` - ✅ `mt-startup/application-dev.yml`: `app.frontend.url: http://175.178.252.59` - ✅ `mt-startup/application.yml`: `app.frontend.url: http://175.178.252.59` - ✅ `ProductServiceImpl.java`: 默认值改为 `http://175.178.252.59` - ✅ `ProductLinkServiceImpl.java`: 默认值改为 `http://175.178.252.59` #### PayPal Webhook配置 - ✅ `application-dev.yml`: `paypal.webhook-url: https://175.178.252.59/api/paypal/webhook`(HTTPS,PayPal要求) #### 启动类日志 - ✅ `MtPayApplication.java`: 启动日志使用公网地址 - ✅ `MtkjpayApplication.java`: 启动日志使用公网地址 ### 2. 前端配置 #### API地址 - ✅ `.env.production`: `VITE_API_BASE_URL=/api`(相对路径,通过Nginx代理) - ✅ `vite.config.js`: 开发环境代理(保留127.0.0.1,仅用于本地开发) ### 3. 代码注释 - ✅ `ProductServiceImpl.java`: 注释中的示例URL已更新为公网地址 ## 📋 部署前检查清单 ### 后端检查 - [x] 端口配置为 `8082` - [x] 前端URL配置为 `http://175.178.252.59`(无端口,通过Nginx访问) - [x] PayPal Webhook URL配置为 `https://175.178.252.59/api/paypal/webhook`(HTTPS) - [ ] 重新打包后端:`mvn clean package -DskipTests` - [ ] 上传新的jar包到服务器 - [ ] 启动后端服务并确认监听在 `8082` 端口 ### 前端检查 - [x] `.env.production` 使用相对路径 `/api` - [ ] 重新构建前端:`npm run build` - [ ] 上传新的dist目录到服务器 ### Nginx配置检查 - [ ] `proxy_pass` 端口为 `8082`: ```nginx location /api/ { proxy_pass http://127.0.0.1:8082; ... } ``` - [ ] Nginx配置已保存并重载 ### PayPal配置检查 - [ ] **Nginx已配置SSL证书(PayPal Webhook必需,只接受HTTPS)** - [ ] PayPal控制台Webhook URL已更新为:`https://175.178.252.59/api/paypal/webhook` ### 防火墙检查 - [ ] 端口 `8082` 已开放(如果需要外部直接访问) - [ ] 端口 `80` 已开放(Nginx前端访问) ## 🔍 验证步骤 ### 1. 验证后端服务 ```bash # 在服务器上执行 curl http://127.0.0.1:8082/api/health ``` ### 2. 验证Nginx代理 ```bash # 在服务器上执行 curl http://127.0.0.1/api/health ``` ### 3. 验证商品链接生成 - 创建商品后,检查生成的链接是否为:`http://175.178.252.59/product/xxxxx` - 不应包含 `localhost` 或端口号 ### 4. 验证前端访问 - 浏览器访问:`http://175.178.252.59` - 检查浏览器控制台(F12)中的API请求 - 请求URL应为:`http://175.178.252.59/api/xxx`(通过Nginx代理) ## ⚠️ 重要提示 1. **前端URL不需要端口号** - 配置为:`http://175.178.252.59`(不是 `http://175.178.252.59:3000`) - 因为前端通过Nginx访问,默认使用80端口 2. **后端API配置** - PayPal Webhook通过Nginx HTTPS访问:`https://175.178.252.59/api/paypal/webhook`(Nginx转发到后端8082) - 前端通过Nginx代理访问:`http://175.178.252.59/api/xxx`(Nginx转发到8082) - ⚠️ **重要:** PayPal只接受HTTPS(端口443),必须配置SSL证书 3. **商品链接生成** - 使用 `app.frontend.url` 配置生成 - 格式:`{frontendUrl}/product/{linkCode}` - 示例:`http://175.178.252.59/product/2563c74bd94c4a4b95abccf697a6c756` ## 📝 修改总结 所有 `localhost` 和硬编码地址已替换为公网地址 `175.178.252.59`: - ✅ 配置文件中的URL - ✅ Java代码中的默认值 - ✅ 启动日志中的提示信息 - ✅ 代码注释中的示例 所有端口已统一为 `8082`: - ✅ 后端服务端口 - ✅ PayPal Webhook URL - ✅ 代码中的默认值