#!/bin/bash # ============================================================================= # /itdesk/ 500 错误诊断脚本 # 在生产服务器 10.90.5.110 上跑(PuTTY 登录后): # cd /opt/wecom-it-desk # bash diagnose-500.sh > /tmp/diag.log 2>&1 # cat /tmp/diag.log # ============================================================================= echo "========== 1. 容器状态 ==========" docker compose ps echo "" echo "========== 2. /opt/wecom-it-desk 目录结构 ==========" ls -la /opt/wecom-it-desk/ 2>&1 | head -20 echo "--- frontend-h5/dist ---" ls -la /opt/wecom-it-desk/frontend-h5/dist/ 2>&1 | head -10 echo "--- frontend-h5/dist/assets ---" ls -la /opt/wecom-it-desk/frontend-h5/dist/assets/ 2>&1 | head -10 echo "--- frontend-agent/dist/assets ---" ls -la /opt/wecom-it-desk/frontend-agent/dist/assets/ 2>&1 | head -10 echo "--- frontend-portal/dist/assets ---" ls -la /opt/wecom-it-desk/frontend-portal/dist/assets/ 2>&1 | head -10 echo "--- frontend-admin/dist/assets ---" ls -la /opt/wecom-it-desk/frontend-admin/dist/assets/ 2>&1 | head -10 echo "" echo "========== 3. nginx 容器内文件检查 ==========" docker compose exec nginx ls -la /usr/share/nginx/html/ 2>&1 | head -20 echo "--- /usr/share/nginx/html/itdesk ---" docker compose exec nginx ls -la /usr/share/nginx/html/itdesk/ 2>&1 | head -10 echo "--- /usr/share/nginx/html/itdesk/assets ---" docker compose exec nginx ls -la /usr/share/nginx/html/itdesk/assets/ 2>&1 | head -10 echo "--- /usr/share/nginx/ssl/ ---" docker compose exec nginx ls -la /etc/nginx/ssl/ 2>&1 | head -10 echo "" echo "========== 4. nginx 配置实际生效版本(头部 50 行)==========" docker compose exec nginx cat /etc/nginx/nginx.conf 2>&1 | head -50 echo "" echo "========== 5. nginx 容器端口监听 ==========" docker compose exec nginx netstat -tlnp 2>&1 | head -10 echo "(没 netstat 用 ss:)" docker compose exec nginx ss -tlnp 2>&1 | head -10 echo "" echo "========== 6. 直接 curl 测试各路径 ==========" echo "--- /itdesk/ (容器内) ---" docker compose exec nginx curl -ksI https://localhost/itdesk/ 2>&1 | head -20 echo "--- /itdesk/ (容器外主机 443) ---" curl -ksI https://localhost:443/itdesk/ 2>&1 | head -20 echo "--- /itportal/ ---" curl -ksI https://localhost:443/itportal/ 2>&1 | head -20 echo "--- /itdesk/assets/ (探 404) ---" curl -ksI https://localhost:443/itdesk/assets/ 2>&1 | head -20 echo "" echo "========== 7. 主机实际 URL 域名 ==========" curl -ksI https://itsupport.servyou.com.cn/itdesk/ 2>&1 | head -20 echo "---" curl -ksI https://itsupport.servyou.com.cn/itportal/ 2>&1 | head -20 echo "---" curl -ksI https://itsupport.servyou.com.cn/itagent/ 2>&1 | head -20 echo "---" curl -ksI https://itsupport.servyou.com.cn/itadmin/ 2>&1 | head -20 echo "" echo "========== 8. nginx access log 最近 30 行(找 500 请求)==========" docker compose exec nginx tail -30 /var/log/nginx/access.log 2>&1 echo "" echo "========== 9. nginx error log 最近 30 行 ==========" docker compose exec nginx tail -30 /var/log/nginx/error.log 2>&1 echo "" echo "========== 10. backend 容器健康 ==========" docker compose ps backend echo "--- backend health endpoint ---" docker compose exec backend curl -ks http://localhost:8000/api/health 2>&1 | head -5 echo "" echo "========== 11. 看一下后端访问 /api/h5/me (H5 启动时会调)==========" echo "--- /api/h5/me 无 token ---" curl -ks -i -X GET https://itsupport.servyou.com.cn/api/h5/me 2>&1 | head -10