본문 바로가기
실생활 IT 지식 블로그 실생활 IT 지식 블로그

시놀로지 NAS 502 Bad Gateway 오류, 역방향 프록시 설정부터 확인해야 하는 이유

IT왕세자 읽는 시간 약 15분

시놀로지 NAS에서 웹 서비스를 운영하다 보면 외부에서 접속했을 때 갑자기 502 Bad Gateway 오류가 나타나는 경우가 있습니다.

DDNS 주소도 정상이고 인터넷 연결에도 문제가 없습니다. 포트포워딩 설정도 그대로인데 웹 브라우저에서는 NAS 서비스 화면 대신 502 오류가 표시됩니다.

특히 시놀로지 NAS에서 여러 웹 서비스를 운영하면서 역방향 프록시(Reverse Proxy)를 사용하고 있다면 이 오류가 발생했을 때 가장 먼저 확인해야 할 부분이 있습니다.

바로 역방향 프록시가 외부 요청을 실제 서비스로 제대로 전달하고 있는지입니다.

502 Bad Gateway는 단순히 인터넷 연결이 끊겼다는 의미가 아닙니다.

외부에서 접속 요청을 받은 프록시 서버가 뒤쪽의 실제 서버 또는 서비스로부터 정상적인 응답을 받지 못했을 때 발생할 수 있습니다.

따라서 이 문제를 해결하려면 포트포워딩부터 무작정 다시 설정하기보다 역방향 프록시의 대상 주소와 포트, 실제 서비스 상태, 네트워크 연결을 순서대로 확인하는 것이 중요합니다.

502 Bad Gateway는 어떤 오류일까?

502 Bad Gateway를 이해하려면 먼저 웹 서비스의 연결 구조를 생각해 볼 필요가 있습니다.

예를 들어 NAS에서 여러 서비스를 운영한다고 가정해 보겠습니다.

사용자가 인터넷에서 특정 도메인으로 접속하면 요청이 먼저 NAS의 역방향 프록시에 도착합니다.

역방향 프록시는 요청된 도메인이나 규칙을 확인한 다음 실제 서비스를 실행하고 있는 내부 서버 또는 컨테이너로 요청을 전달합니다.

구조를 단순하게 표현하면 다음과 같습니다.

사용자 → 인터넷 → NAS → 역방향 프록시 → 실제 서비스

여기서 역방향 프록시는 일종의 중간 전달자 역할을 합니다.

그런데 프록시가 뒤쪽 서비스에 연결하지 못하거나 정상적인 응답을 받지 못하면 브라우저에 502 Bad Gateway가 표시될 수 있습니다.

따라서 502 오류가 발생했다고 해서 반드시 인터넷이나 DDNS에 문제가 있는 것은 아닙니다.

오히려 프록시와 실제 서비스 사이의 연결 문제일 가능성을 먼저 생각해 볼 필요가 있습니다.

역방향 프록시를 사용하면 왜 문제가 복잡해질까?

NAS에서 하나의 서버만 사용하는 경우에는 비교적 단순합니다.

특정 포트로 들어온 요청을 NAS의 특정 서비스로 전달하면 됩니다.

하지만 여러 서비스를 하나의 NAS에서 운영하면 상황이 달라집니다.

예를 들어 NAS에서

  • 웹사이트
  • 미디어 서버
  • 관리 페이지
  • Docker 컨테이너
  • 기타 웹 애플리케이션

등을 동시에 운영할 수 있습니다.

이때 서비스마다 외부 포트를 여러 개 열어 사용하는 대신 도메인이나 경로에 따라 요청을 분배하는 방법으로 역방향 프록시를 사용할 수 있습니다.

예를 들어 service1.example.com은 첫 번째 서비스로, service2.example.com은 두 번째 서비스로 연결하도록 구성할 수 있습니다.

이 방식은 편리하지만 중간에 역방향 프록시가 추가되기 때문에 프록시 설정과 실제 서비스 설정이 서로 맞아야 합니다.

한쪽의 포트가 변경됐는데 다른 쪽 설정을 그대로 두면 502 오류가 발생할 수 있습니다.

가장 먼저 확인해야 할 것은 대상 주소와 포트

502 오류가 발생했을 때 가장 먼저 확인할 부분은 역방향 프록시의 대상 주소와 포트입니다.

예를 들어 역방향 프록시가 특정 Docker 컨테이너의 웹 서비스로 요청을 전달하도록 설정되어 있다고 가정해 보겠습니다.

과거에는 해당 서비스가 NAS의 특정 포트에서 실행되고 있었는데 Docker 설정을 변경하면서 포트가 다른 번호로 변경됐다면 문제가 발생할 수 있습니다.

프록시는 여전히 이전 포트로 연결을 시도하기 때문입니다.

결과적으로 외부 요청 → 역방향 프록시 → 잘못된 포트 → 연결 실패 → 502 오류라는 상황이 만들어질 수 있습니다.

따라서 502 오류가 발생하면 먼저 역방향 프록시 규칙에서 지정한 대상 호스트와 포트가 현재 실제 서비스가 사용하는 값과 동일한지 확인해야 합니다.

실제 서비스가 실행 중인지 확인

역방향 프록시 설정이 정확하더라도 뒤쪽 서비스 자체가 실행되고 있지 않다면 정상적인 응답을 받을 수 없습니다.

예를 들어 Docker로 웹 서비스를 실행하고 있는데 컨테이너가 중지됐거나 오류로 종료됐다면 역방향 프록시는 연결할 대상이 없어집니다.

이 경우 외부에서는 502 오류가 발생할 수 있습니다.

따라서 역방향 프록시만 확인할 것이 아니라 실제 서비스가 정상적으로 실행되고 있는지도 확인해야 합니다.

Docker 컨테이너를 사용하는 경우에는 Container Manager에서 해당 컨테이너의 상태를 확인하고, 필요하다면 컨테이너 로그도 살펴보는 것이 좋습니다.

특히 최근에 컨테이너를 업데이트했거나 설정을 변경했다면 서비스 포트나 네트워크 설정이 바뀌지 않았는지 확인해야 합니다.

내부에서 실제 서비스에 직접 접속해 본다

502 오류의 원인을 빠르게 좁히는 방법 중 하나는 역방향 프록시를 거치지 않고 실제 서비스에 직접 접속해 보는 것입니다.

예를 들어 실제 서비스가 NAS 내부에서 특정 포트를 사용하고 있다면 같은 내부 네트워크에서 해당 주소와 포트로 접속해 봅니다.

내부에서 직접 접속했을 때 서비스가 정상적으로 열린다면 실제 서비스 자체는 작동하고 있을 가능성이 높습니다.

이 경우에는 역방향 프록시 설정이나 프록시와 서비스 사이의 연결을 집중적으로 확인할 수 있습니다.

반대로 내부에서 직접 접속해도 서비스가 열리지 않는다면 역방향 프록시보다 실제 서비스 자체에 문제가 있을 가능성이 높습니다.

이렇게 테스트하면 문제의 범위를 빠르게 좁힐 수 있습니다.

Docker 컨테이너를 사용한다면 네트워크 설정을 확인

시놀로지 NAS에서 Docker 컨테이너로 서비스를 운영하는 경우 502 오류의 원인이 네트워크 설정에 있을 수도 있습니다.

특히 컨테이너의 네트워크 모드와 포트 매핑을 확인해야 합니다.

예를 들어 역방향 프록시가 NAS의 특정 포트로 요청을 전달하도록 설정되어 있는데 Docker 컨테이너가 실제로는 다른 포트에서 서비스를 제공하고 있다면 프록시가 올바른 대상에 연결하지 못합니다.

또한 컨테이너 내부에서 사용하는 포트와 NAS에 공개된 포트는 같은 개념이 아닐 수 있습니다.

따라서 Docker 서비스를 사용하는 경우에는 컨테이너 내부 포트 → NAS 포트 → 역방향 프록시 대상 포트가 어떻게 연결되어 있는지 확인해야 합니다.

이 부분을 혼동하면 설정 화면에서는 모든 값이 정상처럼 보여도 실제 연결은 실패할 수 있습니다.

역방향 프록시의 도메인 조건도 확인

역방향 프록시는 보통 요청이 어떤 도메인으로 들어왔는지를 기준으로 특정 서비스로 전달합니다.

예를 들어 nas.example.com으로 들어오는 요청은 DSM으로, media.example.com으로 들어오는 요청은 미디어 서버로 연결하도록 구성할 수 있습니다.

그런데 도메인 이름을 변경했거나 DNS 설정을 수정한 후 역방향 프록시의 호스트 이름을 그대로 두었다면 예상하지 못한 문제가 발생할 수 있습니다.

따라서 502 오류가 발생하면 현재 접속하고 있는 도메인이 역방향 프록시 규칙에 등록된 도메인과 정확하게 일치하는지도 확인해야 합니다.

HTTPS와 HTTP 설정이 서로 맞는지 확인

역방향 프록시를 사용할 때는 HTTPS와 HTTP의 관계도 확인해야 합니다.

외부에서는 HTTPS로 접속하지만 내부 서비스는 HTTP로 동작하는 구성도 가능합니다.

예를 들어 외부 HTTPS → 역방향 프록시 → 내부 HTTP 서비스 형태로 구성할 수 있습니다.

이때 프록시가 내부 서비스에 HTTPS로 연결하도록 잘못 설정되어 있거나 실제 서비스가 지원하지 않는 프로토콜을 사용하도록 설정되어 있다면 연결에 실패할 수 있습니다.

반대로 내부 서비스가 HTTPS를 요구하는데 프록시가 HTTP로 연결하도록 구성되어 있는 경우에도 문제가 발생할 수 있습니다.

따라서 역방향 프록시의 프로토콜 설정과 실제 서비스가 제공하는 프로토콜이 일치하는지 확인하는 것이 좋습니다.

SSL 인증서 문제와 502 오류를 구분해야 한다

외부 HTTPS 접속을 사용하는 경우 SSL 인증서 문제와 502 오류를 혼동하기도 합니다.

브라우저에서 인증서가 만료됐거나 신뢰할 수 없는 인증서라는 메시지가 표시되는 것과 502 Bad Gateway가 표시되는 것은 서로 다른 문제입니다.

인증서 문제가 있다면 인증서의 유효기간이나 도메인 이름, 인증서 적용 상태 등을 확인해야 합니다.

반면 502 오류가 발생한다면 역방향 프록시가 뒤쪽 서비스에서 정상적인 응답을 받지 못하는 상황도 함께 의심해야 합니다.

따라서 브라우저에 정확히 어떤 오류가 표시되는지 확인하는 것이 중요합니다.

최근 설정을 변경했다면 그 부분부터 확인

잘 사용하던 웹 서비스에서 갑자기 502 오류가 발생했다면 최근에 무엇을 변경했는지 생각해 보는 것이 좋습니다.

예를 들어 Docker 컨테이너를 업데이트했거나 컨테이너를 다시 생성했을 수 있습니다.

서비스 포트를 변경했을 수도 있습니다.

역방향 프록시 규칙을 수정했거나 SSL 인증서를 변경했을 수도 있습니다.

또는 NAS나 공유기를 재부팅한 이후부터 문제가 발생했을 수도 있습니다.

특히 설정 변경 직후 502 오류가 발생했다면 최근 변경된 설정부터 되돌려 확인하는 것이 가장 빠른 방법입니다.

문제가 발생하기 전과 현재의 설정을 비교하면 원인을 찾는 데 도움이 됩니다.

NAS 재부팅으로 해결되는 경우도 있지만 원인을 확인해야 한다

일시적인 서비스 오류라면 NAS 또는 해당 컨테이너를 재시작한 후 문제가 사라질 수도 있습니다.

하지만 단순히 재부팅해서 오류가 없어졌다고 해서 원인이 해결됐다고 생각해서는 안 됩니다.

서비스가 다시 시작되면서 일시적인 연결 문제가 사라졌을 뿐일 수도 있기 때문입니다.

같은 502 오류가 반복된다면 서비스 로그와 역방향 프록시 설정을 확인해야 합니다.

특히 일정 시간이 지나면 다시 502 오류가 발생한다면 컨테이너 종료, 메모리 부족, 서비스 충돌, 네트워크 문제 등 다른 원인을 찾아야 합니다.

502 오류가 발생했다고 포트포워딩부터 다시 설정할 필요는 없다

외부에서 접속되지 않는다는 이유로 공유기의 포트포워딩을 계속 수정하는 경우가 있습니다.

하지만 역방향 프록시를 사용하고 있고 브라우저에서 502 Bad Gateway라는 응답을 받고 있다면 무조건 포트포워딩부터 의심할 필요는 없습니다.

외부 요청이 이미 NAS의 역방향 프록시까지 도착했기 때문에 502 응답이 반환되는 상황이라면 외부에서 NAS까지의 연결은 어느 정도 이루어진 상태일 수도 있습니다.

따라서 이 경우에는 역방향 프록시와 실제 서비스 사이의 연결을 먼저 확인하는 것이 효율적입니다.

물론 네트워크 구성에 따라 원인이 다를 수 있으므로 포트포워딩이나 방화벽 문제를 완전히 배제해서는 안 됩니다.

중요한 것은 오류 메시지를 기준으로 문제 구간을 좁혀가는 것입니다.

502 Bad Gateway가 발생할 때 확인하는 순서

이 문제를 확인할 때는 다음과 같은 순서로 접근하면 좋습니다.

먼저 내부 네트워크에서 실제 서비스가 정상적으로 실행되고 있는지 확인합니다.

그다음 실제 서비스가 사용하는 내부 주소와 포트를 확인합니다.

이후 역방향 프록시 규칙에 입력된 대상 주소와 포트가 현재 서비스와 일치하는지 확인합니다.

Docker 서비스를 사용한다면 컨테이너 상태와 포트 매핑도 확인합니다.

그다음 역방향 프록시의 도메인 설정을 확인하고 외부 HTTPS와 내부 HTTP 또는 HTTPS 설정이 서로 맞는지 살펴봅니다.

SSL 인증서 문제도 별도로 확인합니다.

마지막으로 공유기 포트포워딩과 NAS 방화벽 등 외부에서 NAS까지 들어오는 네트워크 구성을 확인합니다.

이렇게 하면 단순히 502 오류만 보고 설정을 무작정 변경하는 것보다 훨씬 빠르게 원인을 좁힐 수 있습니다.

외부에 공개된 서비스는 보안도 함께 확인해야 한다

역방향 프록시를 이용하면 하나의 NAS에서 여러 웹 서비스를 외부에 공개하기 편리합니다.

하지만 외부에서 접근할 수 있는 서비스가 늘어난다는 것은 그만큼 보안 관리가 중요해진다는 의미이기도 합니다.

사용하지 않는 서비스는 외부에 공개하지 않는 것이 좋습니다.

또한 관리자 페이지와 같이 민감한 서비스는 별도의 접근 제한이나 추가 인증을 고려할 필요가 있습니다.

Docker로 설치한 서비스 역시 기본 비밀번호를 그대로 사용하는 것은 피해야 합니다.

특히 NAS에는 개인 파일과 백업 데이터가 함께 저장되어 있을 수 있기 때문에 웹 서비스 하나의 보안 문제가 NAS 전체의 보안 문제로 이어질 가능성도 생각해야 합니다.

마무리

시놀로지 NAS에서 502 Bad Gateway 오류가 발생했다고 해서 인터넷 연결이나 DDNS에 문제가 있다고 단정할 필요는 없습니다.

특히 역방향 프록시를 사용하는 환경에서는 외부에서 들어온 요청이 프록시까지 도착한 뒤 뒤쪽의 실제 서비스와 정상적으로 통신하지 못해서 발생하는 경우를 먼저 생각해 볼 수 있습니다.

따라서 실제 서비스 실행 상태 → 서비스 주소와 포트 → Docker 포트 매핑 → 역방향 프록시 대상 설정 → 도메인 설정 → HTTP·HTTPS 설정 → SSL 인증서 → 방화벽과 포트포워딩 순서로 확인하는 것이 좋습니다.

특히 최근에 Docker 컨테이너나 웹 서비스의 포트를 변경했다면 역방향 프록시가 여전히 이전 포트를 바라보고 있지 않은지 확인해야 합니다.

502 오류는 단순한 인터넷 연결 오류라기보다 ‘중간에서 요청을 전달받은 서버가 뒤쪽 서비스로부터 정상적인 응답을 받지 못하고 있다’는 신호로 접근하는 것이 문제 해결에 도움이 됩니다.

결국 중요한 것은 오류 메시지만 보고 설정을 반복해서 변경하는 것이 아니라, 사용자의 요청이 어디까지 도착했고 어느 구간에서 연결이 끊겼는지를 확인하는 것입니다.

이 과정을 이해하고 있으면 시놀로지 NAS에서 운영하는 Docker 서비스나 웹 애플리케이션에서 비슷한 502 오류가 발생했을 때도 원인을 훨씬 빠르게 찾을 수 있습니다.

IT왕세자

IT왕세자
함께 보면 좋은 글

댓글 0

첫 댓글을 남겨보세요.

error: Content is protected !!

광고 차단 알림

광고 클릭 제한을 초과하여 광고가 차단되었습니다.

단시간에 반복적인 광고 클릭은 시스템에 의해 감지되며, IP가 수집되어 사이트 관리자가 확인 가능합니다.