500 에러
500 에러(500 Internal Server Error)는 서버가 요청을 처리하다 안에서 오류가 났다는 응답이에요. 원인은 화면에 안 나오고 서버 로그에 남아서, 로그 → 최근 변경 → 설정·권한 → 자원 순서로 찾아요.
목차 보기
500 에러(500 Internal Server Error)는 서버가 요청을 처리하다 안에서 오류가 났다는 응답이에요. 식당에 주문은 잘 들어갔는데 주방에서 사고가 난 상황이에요. 손님(방문자)에게는 "죄송합니다"만 보이고, 무슨 사고인지는 주방 기록(서버 로그)에만 남아요.
한눈에 보기
500 에러는 왜 생겨요?
| 원인 | 예 |
|---|---|
| 코드 버그 | 처리 못 한 예외, 오타, 없는 함수 호출 |
| 데이터베이스 | DB 비밀번호가 바뀌었거나 DB 서버가 꺼짐 |
| 설정 실수 | 웹 서버 설정의 무한 되돌이, 잘못된 .htaccess |
| 권한 | 프로그램이 읽어야 할 파일·폴더에 권한이 없음 |
| 자원 부족 | 메모리·디스크가 꽉 차서 처리 중 실패 |
직접 500 을 세 번 일으켜 봤어요
2026년 10월 29일, 우리 PC 의 도커에 nginx(앞 서버), Node.js 앱, PHP-FPM 을 띄웠어요. 그리고 일부러 세 가지 오류를 만들었어요.
$ curl -s -o /dev/null -w '%{http_code}' http://127.0.0.1:18924/app/crash # ① 앱이 직접 500 을 돌려줌
500
$ curl -s -o /dev/null -w '%{http_code}' http://127.0.0.1:18924/boom.php # ② PHP 코드에서 예외
500
$ curl -s -o /dev/null -w '%{http_code}' http://127.0.0.1:18924/loop # ③ nginx 설정이 무한 되돌이
500
방문자 눈에는 셋 다 똑같은 500 이에요. 원인은 각각 다른 로그에 있었어요.
# ② PHP-FPM 로그 (docker logs phpfpm) NOTICE: PHP message: PHP Fatal error: Uncaught Exception: database connection failed in /var/www/boom.php:3 # ③ nginx 오류 로그 (docker logs web) [error] *13 rewrite or internal redirection cycle while processing "/loop2", request: "GET /loop HTTP/1.1" # ① 은 앱이 스스로 500 을 보낸 거라 nginx 오류 로그엔 아무것도 없었어요 → 앱 로그를 봐야 해요
②는 "DB 연결 실패"라고 이유가 바로 찍혔어요. ③은 설정 두 줄이 서로를 가리켜 빙빙 돈 거예요.
location /loop { rewrite ^/loop$ /loop2 last; }
location /loop2 { rewrite ^/loop2$ /loop last; }
원인별 해결 순서
방문자라면 할 수 있는 게 많지 않아요. 몇 분 뒤 새로고침해 보고, 계속되면 사이트에 알려 주세요. 내 컴퓨터 문제인 경우는 드물어요.
운영자라면 이 순서로 봐요.
| 순서 | 볼 곳 | 찾는 것 |
|---|---|---|
| 1 | 앱·언어 로그(PHP-FPM, Node, 파이썬) | Fatal error, Exception, Traceback 같은 줄(대부분 여기서 끝나요) |
| 2 | 웹 서버 오류 로그(nginx error.log) | rewrite cycle, permission denied 같은 설정·권한 문제 |
| 3 | 최근에 바꾼 것 | 배포·설정 변경 직후라면 되돌려서 확인해요 |
| 4 | 데이터베이스·외부 API | 접속 정보, DB 서버가 살아 있는지 |
| 5 | 자원 | df -h(디스크), free -m(메모리)로 꽉 찼는지 |
nginx 설정을 고쳤다면 nginx -t 로 문법을 먼저 확인하고 nginx -s reload 로 반영해요. 운영 화면에는 오류 내용을 그대로 보여 주지 마세요(위 실습도 display_errors=0). 공격자에게 힌트가 돼요.
500, 502, 503, 504 는 뭐가 달라요?
| 코드 | 뜻 | 먼저 볼 곳 |
|---|---|---|
| 500 | 서버(또는 앱) 안에서 오류 | 앱 로그 |
| 502 | 앞 서버가 뒤쪽 앱에게서 제대로 된 답을 못 받음(502 에러) | 뒤쪽 앱이 떠 있는지 |
| 503 | 지금은 처리할 수 없음(점검·과부하) | 점검 설정, 서버 부하 |
| 504 | 뒤쪽 앱이 너무 늦게 답함 | 느린 처리·DB 쿼리, 타임아웃 설정 |
자주 하는 오해
- 500 은 서버가 죽었다는 뜻이다. 서버는 살아서 "오류 났어요"라고 답한 거예요. 다른 페이지는 멀쩡할 수 있어요.
- 새로고침을 계속 누르면 풀린다. 일시적인 문제가 아니면 안 풀려요. 원인은 로그에 있어요.
- 500 이면 무조건 코드 문제다. 위 실습 ③처럼 웹 서버 설정만으로도 500 이 나요.
퓨쳐인프라에서는
퓨쳐인프라 앱 호스팅에서는 콘솔이나 API 로 앱 컨테이너 로그를 바로 볼 수 있어요. 앱이 500 을 내거나 안 뜰 때 원인은 거의 항상 여기 찍혀 있어요. 가상서버에 직접 nginx 를 깔았다면 위 순서대로 로그를 보면 돼요.
위험한 설정을 바꾸기 전에는 서버 백업을 한 장 떠 두면 되돌리기 쉬워요. 가입하면 2,000원 크레딧이 들어와서 작은 서버로 먼저 연습할 수 있어요.
자주 묻는 질문
500 에러는 제 인터넷 문제인가요?
아니에요. 서버 쪽 문제예요. 다른 기기·다른 회선에서도 같으면 확실해요.
워드프레스에서 500 이 나면요?
최근에 깐 플러그인·테마부터 의심하세요. 플러그인 폴더 이름을 잠시 바꿔 꺼 보고, PHP 오류 로그를 확인해요.
500 에러가 검색 순위에 영향을 줘요?
잠깐은 괜찮지만 오래 이어지면 검색엔진이 그 페이지를 덜 찾아오고, 결국 결과에서 빠질 수 있어요. 빨리 고치는 게 좋아요.
오류 내용을 화면에 보여 주면 안 되나요?
개발할 때만 보여 주세요. 운영 화면에 경로·쿼리가 드러나면 공격에 쓰일 수 있어요. 대신 로그에 남겨요.
관련 용어
502 에러 · 404 에러 · 세션 · 캐시 · 서버란 · 스냅샷과 백업
이 글의 숫자 출처
- 글쓴이는 서순명(솔리드그루 이사)이에요. 솔리드그루는 국내 IDC 에서 클라우드 서버·앱 호스팅·AI API 서비스 퓨쳐인프라를 운영해요. 2026-10-29에 썼어요.
- 운영사는 솔리드그루예요. 사업자등록번호 875-44-00335 · 서울특별시 구로구 디지털로29길 38, 7층 707호 · 전화 02-6933-6229 · support@futureinfra.ai · 고객센터 · 이용약관
- 한계도 있어요. 실습은 우리 PC 의 도커(nginx 1.30.6, PHP 8.3.36-FPM, Node 24)에서 일부러 오류를 만든 거예요. 실제 서비스는 원인이 더 섞여 있어요.
- 이해관계를 밝혀 둬요. 퓨쳐인프라 앱 로그 기능을 안내했어요(자사 서비스).
연관 서비스
많이 본 글
-
블로그
도메인 구매 사이트 추천 2026 — 가비아·후이즈 등 15곳 갱신·이전비 비교
같은 .co.kr 도 등록업체 15곳의 3년 값이 3.8만~8.6만 원이에요(11월 3일 KRNIC 표). 갱신가·이전비·해외 업체 조건, 11월 인상 뒤 가비아 실제 화면, 구매처 확인과 기관이전까지 정리했어요. -
블로그
무료 도메인 사이트 추천 2026 — 내도메인.한국·DuckDNS 발급 방법
내도메인.한국·DuckDNS 처럼 계속 무료인 주소 10곳을 11월 3일 서울에서 다시 재고(6곳 6ms 안), 발급 순서·구글·네이버 무료 주소·'첫해 무료'의 2년째 값까지 정리했어요. -
블로그
클로드 MCP·Gemini MCP 연동 방법 2026, MCP 서버 9곳
클로드 MCP(데스크톱·Claude Code)와 Gemini MCP 연동(Gemini CLI·안티그래비티·Gemini 앱·API) 등 9곳의 MCP 서버 연결법을 공식 문서로 정리했어요. 원격 57ms 실측과 오류 해결까지. -
블로그
Gemini 3.9 Flash 나왔나요? 지금 최신은 3.8 Flash — 3.7과 직접 잰 속도·비용
2026년 9월 22일 기준 Gemini 3.9 Flash는 미출시입니다. 최신 3.8 Flash의 사양·가격(2027년 2배 인상)과, 3.7 Flash와 같은 과제로 직접 잰 속도·비용·JSON 형식 준수 차이를 정리했습니다. -
블로그
서버비 한 달 얼마? 방문자 10만 명도 월 3만 2천 원(2026 계산)
월 방문자 1천·1만 명은 1만 4천 원, 10만 명은 3만 2천 원이에요. 요금제별 트래픽 기본 제공량까지 넣어 다시 계산하고 AWS·카페24·가비아·네이버클라우드 값과 숨은 비용을 비교했어요(2026-10-26 확인).
댓글
로그인하면 댓글을 남길 수 있습니다.