Files
obsidian/history/2026-03-15-apisix-git-push-500.md
kappa 2356b86d36 obsidian: 정본 문서에서 히스토리/인시던트 분리 완료
15개 정본 문서에서 날짜별 변경이력, 인시던트 기록, 폐기된 구현 상세를
history/ 디렉토리로 분리. 정본은 현재 상태만 기술하는 백서 형태로 정리.
각 정본에 history 위키링크 추가.

분리된 history 파일 12건:
- apisix git push 500, k3s postgresql migration, apisix→traefik 전환
- netbis DDoS 공격, gitea 이전/분리, usb 2.5g hang + NFS hard mount
- supabase→patroni, apisix etcd 통합/분리, anomaly-detect 재설계
- patroni failover incident, zlambda nixos migration, ops-agents setup

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 12:09:21 +09:00

1.4 KiB

date, topic, areas, tags
date topic areas tags
2026-03-15 APISIX git push 500 에러 + http-logger 401 에러 해결
infra/apisix.md
services/gitea.md
history
incident
apisix
gitea
safeline
crowdsec

git push 500 에러

증상

gitea.inouter.com으로 git push 시 BunnyCDN에서 403 반환 (오리진 500)

원인 1 — client_body_temp 퍼미션

nginx가 큰 POST body(git pack ~20KB)를 /usr/local/apisix/client_body_temp/에 쓸 때 퍼미션 거부. 디렉토리 소유자 nobody vs APISIX apisix 사용자.

수정: chown apisix:apisix /usr/local/apisix/client_body_temp

원인 2 — chaitin-waf 글로벌 적용

chaitin-waf가 global_rules에 있어서 git pack 바이너리를 SafeLine detector가 파싱 실패 → mode: block이면 500 반환.

수정: global_rules에서 chaitin-waf 제거, 각 라우트에 개별 적용. gitea 라우트는 git 경로 WAF 제외.

교훈

  • SafeLine WAF는 바이너리 프로토콜을 처리할 수 없음 → 해당 경로 WAF 제외 필요
  • global_rules WAF는 예외 처리가 어려움 → 라우트별 개별 적용이 유연함

http-logger 401 에러

서울 APISIX http-logger가 CrowdSec으로 로그 전송 시 401. headers.Authorizationauth_header 필드로 수정.

참조

  • infra/apisix.md — 현재 APISIX 설정
  • infra/crowdsec-safeline.md — CrowdSec 로그 연동