Files
workdizhi/TROUBLESHOOTING.md

3.6 KiB
Raw Permalink Blame History

故障排查指南

连接超时问题排查

如果访问 http://101.43.95.130:3006 时出现连接超时ERR_CONNECTION_TIMED_OUT请按以下步骤排查

1. 检查容器是否运行

# 查看容器状态
docker ps -a | grep workdizhi-web

# 或使用docker-compose
docker-compose ps

如果容器没有运行:

# 启动容器
docker-compose up -d

# 或使用docker命令
docker start workdizhi-web

2. 检查容器日志

# 查看容器日志,检查是否有错误
docker-compose logs -f

# 或
docker logs -f workdizhi-web

3. 检查端口监听状态

# 检查3006端口是否在监听
netstat -tlnp | grep 3006
# 或
ss -tlnp | grep 3006
# 或
lsof -i :3006

如果端口没有监听,检查:

  • 容器是否正常启动
  • docker-compose.yml 中的端口映射是否正确

4. 检查防火墙配置

CentOS/RHEL 7+ (firewalld)

# 查看防火墙状态
systemctl status firewalld

# 如果防火墙开启需要开放3006端口
firewall-cmd --permanent --add-port=3006/tcp
firewall-cmd --reload

# 验证端口是否开放
firewall-cmd --list-ports

Ubuntu/Debian (ufw)

# 查看防火墙状态
ufw status

# 开放3006端口
ufw allow 3006/tcp

# 重新加载
ufw reload

iptables

# 开放3006端口
iptables -A INPUT -p tcp --dport 3006 -j ACCEPT
iptables-save

5. 检查云服务器安全组(重要!)

如果使用的是云服务器阿里云、腾讯云、AWS等需要在控制台配置安全组规则

  1. 登录云服务器控制台
  2. 找到对应的服务器实例
  3. 进入"安全组"配置
  4. 添加入站规则:
    • 协议TCP
    • 端口3006
    • 0.0.0.0/0允许所有IP访问或指定特定IP
    • 动作:允许

6. 本地测试

在服务器上测试本地访问:

# 测试本地3006端口
curl http://localhost:3006

# 或
curl http://127.0.0.1:3006

# 如果本地可以访问,说明容器正常,问题在防火墙或安全组

7. 检查Docker服务状态

# 检查Docker服务是否运行
systemctl status docker

# 如果未运行启动Docker
systemctl start docker
systemctl enable docker

8. 重新构建和启动

如果以上都正常,尝试重新构建和启动:

# 停止并删除旧容器
docker-compose down

# 重新构建镜像
docker-compose build --no-cache

# 启动服务
docker-compose up -d

# 查看日志
docker-compose logs -f

9. 验证部署

部署成功后,应该能看到:

  • 容器状态为 Up
  • 端口映射正确:0.0.0.0:3006->80/tcp
  • 日志无错误信息

快速检查脚本

可以运行以下命令快速检查:

#!/bin/bash
echo "=== 检查容器状态 ==="
docker ps -a | grep workdizhi-web

echo -e "\n=== 检查端口监听 ==="
netstat -tlnp | grep 3006 || ss -tlnp | grep 3006

echo -e "\n=== 检查防火墙 ==="
if command -v firewall-cmd &> /dev/null; then
    firewall-cmd --list-ports | grep 3006
elif command -v ufw &> /dev/null; then
    ufw status | grep 3006
fi

echo -e "\n=== 测试本地访问 ==="
curl -I http://localhost:3006 2>&1 | head -1

常见问题

Q: 容器启动后立即退出

A: 检查日志:docker logs workdizhi-web,可能是镜像构建失败或文件缺失

Q: 本地可以访问,外网无法访问

A: 检查防火墙和安全组配置确保3006端口已开放

Q: 端口被占用

A: 检查是否有其他服务占用3006端口或修改docker-compose.yml使用其他端口

Q: 容器运行但无法访问

A: 检查Nginx配置确保容器内Nginx正常启动