HAProxy를 역방향 프록시로 구성하는 방법

Haproxyleul Yeogbanghyang Peulogsilo Guseonghaneun Bangbeob



웹 서버가 있는 경우 클라이언트 요청과 서버의 응답을 전달하는 방법이 있으면 트래픽 분산에 도움이 되고 보안이 강화됩니다. HAProxy와 같은 역방향 프록시는 구성 시 웹 애플리케이션과 클라이언트 장치 간의 중개자 역할을 합니다. 이런 방식으로 클라이언트 요청을 받아 적절한 웹 서버로 전달하는 동시에 서버의 응답을 받아 클라이언트에 전송합니다. 역방향 프록시 역할을 하도록 서버 측에서 HAProxy를 구성하는 것은 간단한 프로세스입니다. 이 게시물에서는 취해야 할 단계를 자세히 설명했습니다.

역방향 프록시를 사용하는 이유는 무엇입니까?

HAProxy를 역방향 프록시로 구성하는 단계를 논의하기 전에 역방향 프록시가 왜 유용한지 빠르게 살펴보겠습니다. HAProxy를 역방향 프록시로 사용하면 다음과 같은 이점이 있습니다.

  1. 로드 밸런싱 – 웹 서버에는 어느 시점에서 많은 클라이언트 요청이 있을 수 있으며, 이를 잘 처리하지 않으면 과부하가 발생하여 예기치 않은 가동 중지 시간이 발생할 수 있습니다. 그러나 역방향 프록시를 구성하면 트래픽이 백엔드 서버 전체에 분산되어 요청으로 인해 서버가 과부하되지 않도록 할 수 있습니다.
  2. 방화벽 및 보안 – 역방향 프록시는 클라이언트 장치를 웹 서버에 연결합니다. 이렇게 하면 백엔드 서버가 인터넷에 직접 노출될 위험이 줄어듭니다. 이렇게 하면 악성 트래픽이 서버를 손상시키기 전에 쉽게 필터링하고 차단할 수 있습니다.
  3. 더 나은 캐싱 – 역방향 프록시를 사용하면 정적 콘텐츠를 캐싱하여 로드 시간이 단축되므로 전반적인 성능이 향상되는 것을 확인할 수 있습니다. 게다가 더 나은 사용자 경험을 얻을 수 있습니다.
  4. SSL/TLS 종료 – 역방향 프록시를 사용하면 SSL/TLS 연결의 암호화 및 해독이 원활하게 이루어지며 백엔드 서버가 이 작업을 짊어질 필요가 없어 부하가 줄어듭니다.

HAProxy를 역방향 프록시로 구성하는 방법

HAProxy와 같은 역방향 프록시가 필수적인 이유를 설명한 후 따라야 할 구성 단계를 알려드리겠습니다.







1단계: HAProxy 설치



시스템에 이미 HAProxy가 설치되어 있을 것입니다. 그렇다면 이 단계를 건너뛰세요. 그러나 이에 익숙하지 않은 사용자는 다음 명령을 실행하여 HAProxy를 설치하십시오.



$ sudo apt 설치 haproxy

우리의 경우에는 이미 설치되어 있습니다.





2단계: HAProxy 구성 파일 편집



HAProxy에는 역방향 프록시로 구성하기 위해 액세스하고 편집해야 하는 구성 파일이 있습니다. 텍스트 편집기를 사용하여 구성 파일을 열어 시작하십시오.

$sudo nano /etc/haproxy/haproxy.cfg

일단 열리면 기본 및 전역 섹션에 대한 기본 구성이 있습니다. 그런 다음 프런트엔드와 백엔드라는 두 개의 섹션을 더 만들어야 합니다. 프런트엔드는 클라이언트 요청을 수신해야 하는 인터페이스를 정의하고, 백엔드는 트래픽을 처리할 서버를 지정합니다.

이 예에서는 포트 80 및 81의 클라이언트 요청을 수락하도록 프런트엔드를 구성합니다. 그런 다음 포트 80의 연결은 특정 서버로 라우팅되고 포트 81의 연결은 다른 서버로 이동하도록 트래픽을 분산하는 규칙을 만듭니다. 섬기는 사람. 우리의 프론트엔드 섹션은 다음과 같습니다:

backend2와 linux_backend라는 두 개의 백엔드 서버를 생성했으므로 두 서버 모두에 대해 백엔드 섹션을 생성해야 합니다. 각각에 대해 'server1' 및 'server2'에 트래픽을 배포할 IP를 지정합니다.

구성 파일을 편집한 후 저장하고 파일을 종료합니다. 필요에 따라 HAProxy를 구성하는 방법은 다양합니다. 우리의 경우 트래픽을 라우팅하기 위해 지정된 IP 주소를 사용하여 웹 서버를 만듭니다. 웹 서버의 IP와 수신 대기하려는 포트와 일치하도록 IP를 변경하십시오.

3단계: 유효성 확인

HAProxy에는 구성 파일이 유효한지 확인할 수 있는 명령이 있습니다. 다음 명령을 실행하고 어떤 결과가 나오는지 확인하세요.

$ sudo haproxy -c -f /etc/haproxy/haproxy.cfg

비슷한 출력이 나타나면 구성 파일이 유효한지 확인하는 것입니다. 그렇지 않으면 오류가 발생합니다.

4단계: 역방향 프록시 테스트

'curl'과 같은 명령을 사용하면 웹 서버에 트래픽을 보내고 그것이 어떻게 응답하는지 확인할 수 있습니다. 우리의 경우 Python3을 사용하여 웹 서버를 만듭니다.

'curl' 명령을 실행하면 웹 서버가 지정된 포트를 수신하고 있고 HAProxy가 구성 파일을 기반으로 지정된 서버에 트래픽을 분산했음을 확인합니다.

브라우저에서 웹 서버에 액세스하여 역방향 프록시가 작동하는지 확인할 수도 있습니다.

클라이언트 장치에서 사용하는 포트에 따라 사용할 수 있는 웹 서버가 두 개 있으므로, 다른 웹 서버를 다른 포트에 바인딩하고 어떤 일이 일어나는지 살펴보겠습니다.

다음 출력은 클라이언트 요청이 포트 81을 통해 전송되었음을 감지한 후 HAProxy가 두 번째 백엔드 서버로 트래픽을 전송하여 트래픽 분산이 예상대로 작동하는지 확인했음을 보여줍니다.

이것이 HAProxy를 역방향 프록시로 구성하는 방법입니다.

결론

HAProxy는 웹 서버용 역방향 프록시로 탁월한 선택입니다. 구성하는 것은 간단합니다. 클라이언트 요청을 수신할 포트와 로드 밸런싱에 사용할 규칙만 지정하세요. 그런 다음 사용할 백엔드 서버를 추가하면 역방향 프록시가 실행됩니다. 이 게시물에서는 HAProxy에 익숙해지도록 따라야 할 단계와 예제를 공유했습니다.