# 端口配置说明 ## 当前端口配置 ### 后端服务 - **容器内端口**: 8888 - **宿主机端口**: 8888 - **访问地址**: `http://your-server-ip:8888` ### 前端服务 - **容器内端口**: 80 - **宿主机端口**: 8889 - **访问地址**: `http://your-server-ip:8889/ashai-wecom-test` ## 配置文件位置 ### 1. 后端端口配置 **文件**: [backend/application-druid.yml](backend/application-druid.yml) ```yaml server: port: 8888 ``` ### 2. Docker 端口映射 **文件**: [docker-compose.yml](docker-compose.yml) ```yaml services: backend: ports: - "8888:8888" # 宿主机:容器 frontend: ports: - "8889:80" # 宿主机:容器 ``` ### 3. Dockerfile 暴露端口 **文件**: [backend/Dockerfile](backend/Dockerfile) ```dockerfile EXPOSE 8888 ``` ## 修改端口 如果需要修改端口,需要同时修改以上三个地方: ### 示例:改为 9000 端口 1. **修改 application-druid.yml**: ```yaml server: port: 9000 ``` 2. **修改 docker-compose.yml**: ```yaml ports: - "9000:9000" ``` 3. **修改 Dockerfile**: ```dockerfile EXPOSE 9000 ``` 4. **修改 healthcheck**: ```yaml healthcheck: test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:9000/"] ``` ## 重新部署 修改端口后需要重新构建: ```bash # 停止并删除旧容器 docker stop wecom-backend wecom-frontend docker rm wecom-backend wecom-frontend # 重新构建并启动 cd deploy docker compose up -d --build # 查看日志 docker compose logs -f ``` ## 验证端口 ### 检查容器端口 ```bash docker ps ``` 应该看到类似: ``` CONTAINER ID IMAGE PORTS xxx deploy-backend 0.0.0.0:8888->8888/tcp xxx deploy-frontend 0.0.0.0:8889->80/tcp ``` ### 测试后端访问 ```bash curl http://localhost:8888 ``` ### 测试前端访问 ```bash curl http://localhost:8889/ashai-wecom-test ``` ## 常见问题 ### 1. 端口被占用 如果启动时报错端口被占用: ```bash # 查看端口占用 netstat -tulpn | grep 8888 # 或使用 lsof(Mac/Linux) lsof -i :8888 # Windows netstat -ano | findstr 8888 ``` 解决方案: - 停止占用端口的程序 - 或修改为其他未占用的端口 ### 2. 容器内外端口不一致 如果宿主机 8080 被占用,可以只修改宿主机端口: ```yaml ports: - "9000:8888" # 宿主机 9000 映射到容器 8888 ``` 这样: - 容器内应用仍运行在 8888 - 外部通过 9000 访问 ### 3. 前端无法连接后端 确保前端 Nginx 配置中的后端地址正确: **文件**: [frontend/nginx.conf](frontend/nginx.conf) ```nginx location /ashai-wecom-test/prod-api/ { proxy_pass http://backend:8888/; # 使用容器名和容器内端口 ... } ``` 注意: - 容器间通信使用**容器名**和**容器内端口** - 不是宿主机端口 ## 完整的访问流程 ``` 用户浏览器 ↓ http://server-ip:8889/ashai-wecom-test ↓ 宿主机 8889 端口 ↓ 前端容器 80 端口 (Nginx) ↓ API 请求: /ashai-wecom-test/prod-api/* ↓ Nginx 代理到: http://backend:8888/ ↓ 后端容器 8888 端口 (Spring Boot) ↓ 返回数据 ```