Files
MTKJPAY/PUBLIC_ACCESS_CHECKLIST.md

121 lines
4.0 KiB
Markdown
Raw Permalink Normal View History

# 公网访问配置检查清单
## ✅ 已完成的配置修改
### 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`HTTPSPayPal要求
#### 启动类日志
-`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
- ✅ 代码中的默认值