사내 모니터링 팀이 내부 헬스체크 엔드포인트를 요구했습니다. 이 컨테이너에서 아파치를 9000 포트로 띄워 헬스 경로를 열고, 운영자 전용 경로는 HTTP로는 열리지 않도록 막아 주세요. 준비되면 소켓·이름해석·응답코드를 직접 확인해 검증하세요.
- systemd 는 PID1 이 아니므로 systemctl start 는 동작하지 않는다. 아파치는 httpd -k start / -k restart 로 직접 기동한다.
- NET_ADMIN 이 없어 방화벽·sysctl 변경은 불가하며, 외부 인터넷도 없다(localhost 만).
- /etc/hosts 는 바인드 마운트 파일이라 sed -i 같은 '파일 교체' 방식은 실패한다. 추가(>>)나 덮어쓰기(cat > )로 편집할 것.
- 기존 80 포트 기본 설정은 건드리지 않아도 된다.
1. httpd 가 9000/tcp 에서 실제로 리스닝하고 있어야 한다(ss 로 확인 가능해야 함).
2. api.internal 이라는 이름이 이 호스트 자신(루프백 주소)으로 해석되어야 한다(getent hosts 로 확인).
3. 문서 루트를 /srv/health 로 하여 http://api.internal:9000/health/ 요청이 200 을 반환하고, 응답 본문의 첫 줄이 이 컨테이너의 호스트명과 같아야 한다.
4. /srv/health/admin/index.html 파일은 존재하되, http://api.internal:9000/admin/ 요청은 접근 제어로 403 을 반환해야 한다(파일을 지워서 404 를 내는 것은 인정하지 않음).