워드프레스 설치하다 왔다면 필독! ‘502 Bad Gateway’ 에러와 Nginx 프록시 충돌 완벽 해결기 & 워드프레스 4편

오라클 클라우드 프리티어 가상 서버에 도커(Docker)를 올리고, 드디어 나만의 워드프레스 블로그에 접속하려는 벅찬 순간! 하얀 화면에 덩그러니 나타난 502 Bad Gateway 에러 문구를 마주하고 눈앞이 캄캄해진 경험이 있으실 겁니다.

이번 포스팅에서는 도대체 왜 워드프레스 배포 환경에서 502 Bad Gateway 에러가 발생하는지 그 근본적인 메커니즘을 분석하고, 까만 리눅스 터미널 창에서 에러 로그를 정확히 추적하여 단 5분 만에 해결하는 실전 가이드를 상세히 정리해 드립니다.

502 Bad Gateway 에러

서버 세팅에 익숙하지 않은 입문자 단계에서는 작은 네트워크 꼬임 하나만 발생해도 502 Bad Gateway 에러가 화면 전체를 가득 채우게 됩니다. 특히 과거에 다른 플랫폼(예: Ghost 블로그)을 테스트해 보았거나 Nginx 리버스 프록시를 처음 구축하는 과정이라면 이 에러는 거의 필수적으로 거쳐 가는 통과의례에 가깝습니다.

Nginx 리버스 프록시를 처음 다뤄보시는 분들이라면, [코딩 초보도 마우스 클릭으로 서버 관리? 도커 포테이너 세팅 웹사이트 띄우기 & 워드프레스 수익화 3편]를 하면서 502 Bad Gateway 에러의 늪에 빠지기 쉽습니다. 오늘은 까만 터미널 창 속에서 에러 로그를 추적하고, Nginx 프록시 충돌을 잡아내어 워드프레스 초기 화면을 무사히 띄우는 완벽한 트러블슈팅 과정을 공유합니다.

화면에 뜬 502 Bad Gateway 에러, 원인이 뭘까?

Nginx 웹 서버가 브라우저의 요청을 받아 도커 내부의 워드프레스(8080 포트)로 넘겨주려 했으나, 목적지가 응답하지 않거나 연결이 거부되었을 때 발생하는 대표적인 문제입니다.

따라서 502 Bad Gateway 에러가 발생했다고 해서 서버 운영체제가 깨졌거나 워드프레스가 완전히 고장 난 것은 아니니 안심하셔도 됩니다. Nginx와 도커 컨테이너 사이의 통신 길목만 깔끔하게 정돈해 주면 즉시 정상 복구됩니다.

대부분 서버 자체가 고장 난 것이 아니라, Nginx 설정 파일의 오타나 포트 번호 충돌이 원인이므로 당황하지 않고 아래 3단계로 원인을 좁혀가면 반드시 해결할 수 있습니다.

워드프레스 컨테이너 실행 여부 확인

가장 먼저 워드프레스 컨테이너가 정상적으로 돌아가고 있는지 확인해야 합니다. 서버 터미널에 접속하여 아래 명령어를 입력합니다.

wp_app과 wp_db가 목록에 없는 경우: 컨테이너가 아직 실행되지 않았거나 에러로 꺼진 상태입니다. ~/wordpress 경로로 이동해 다시 실행합니다:

Bash

cd ~/wordpress
docker compose up -d

컨테이너 로그 확인 (실행 후에도 안 뜰 때):

Bash

docker logs wp_app
  • 명령어 입력 후 HTTP/1.1 302 Found 또는 200 OK가 뜬다면 도커 내부의 워드프레스는 아주 건강하게 살아있는 것입니다.
  • 즉, 범인은 Nginx 프록시 연결 문제로 좁혀집니다.
502 Bad Gateway 에러

Nginx 에러 로그 추적 (Connection refused)

정확히 어디서 길이 끊겼는지 확인하기 위해 Nginx의 에러 로그를 뒤져봅니다.

Bash

sudo tail -n 20 /var/log/nginx/error.log

만약 로그에 connect() failed (111: Connection refused) while connecting to upstream ... upstream: "[http://127.0.0.1:2368/](http://127.0.0.1:2368/)"와 같은 문구가 보인다면 100% 포트 충돌입니다.

워드프레스는 8080 포트를 쓰도록 도커에 띄워두었는데, 저는 Nginx는 과거에 세팅했던 고스트 블로그의 2368 포트로 계속 신호를 보내고 있기 때문에 문이 닫혀 있었던 것이죠.

Nginx 리버스 프록시 헤더 완벽 세팅

포트 번호를 맞췄는데도 502 Bad Gateway 에러나 무한 리다이렉트 현상이 지속된다면, Nginx가 워드프레스로 넘겨주는 ‘프록시 헤더(Header)’ 설정이 누락되었기 때문입니다.

/etc/nginx/sites-available/default 파일을 열어 location / 블록을 아래와 같이 표준 리버스 프록시 규격으로 완벽하게 교체해 줍니다.

Nginx

location / {
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto https;
    proxy_set_header X-Forwarded-Port 443;
    proxy_redirect off;
    proxy_read_timeout 90;
}

주의:
server { … } 블록 안에 root /var/www/html; 이나, 다른 location 항목이 남아 있다면 충돌할 수 있으니 location / { … } 외에 불필요한 기본 try_files는 주석(#) 처리하거나 삭제해 주세요!!

Bash

# 저장 후 Nginx 재시작
sudo nginx -t
sudo systemctl restart nginx

우왓, 드디어 원인을 찾았습니다. default 파일이 아니라 /etc/nginx/sites-available/blog.rudrjs.com 파일이 blog.rudrjs.com의 설정을 담당하고 있어서 발생한 문제였습니다.

1. blog.rudrjs.com 설정 파일 열기

Bash

sudo nano /etc/nginx/sites-available/_______________
 # 예)                                blog.rudrjs.com

2. 포트 번호 변경 (2368 $\rightarrow$ 8080)

파일 안의 proxy_pass 줄을 찾아 포트를 8080으로 변경합니다:

Nginx

proxy_pass http://127.0.0.1:8080;

3. 저장 및 Nginx 재적용

  1. 저장: Ctrl + O -> Enter -> Ctrl + X
  2. Nginx 문법 확인 및 재적용:

Bash

sudo nginx -t
sudo systemctl reload nginx

적용 후 브라우저에서 https://___(여러분 주소 이름)___.com[https://blog.rudrjs.com]으로 접속하시면 워드프레스 설치 화면이 바로 열립니다.

마무리하며

이제 브라우저를 열고 내 도메인으로 접속해 보세요. 지긋지긋했던 502 Bad Gateway 에러가 사라지고 깔끔한 워드프레스 초기 설치 화면이 여러분을 반겨줄 것입니다.

이처럼 직접 부딪히며 해결한 트러블슈팅 경험은 훗날 서버를 관리하거나 외주 웹사이트 제작 비즈니스를 할 때 무엇과도 바꿀 수 없는 강력한 무기가 됩니다. 인프라 구축의 모든 고비를 넘으셨으니, 다음 포스팅에서는 워드프레스에 디자인을 입히는 테마 세팅에 대해 자세히 알아보겠습니다!

“워드프레스 설치하다 왔다면 필독! ‘502 Bad Gateway’ 에러와 Nginx 프록시 충돌 완벽 해결기 & 워드프레스 4편”에 대한 1개의 생각

댓글 남기기