최신 웹 애플리케이션 아키텍처에서로드 밸런싱은 시스템 가용성, 성능 및 확장 성을 향상시키는 중요한 수단입니다. 트래픽을 여러 웹 서버에 배포함으로써 압력을 효과적으로 분산시키고 웹 사이트가 여전히 높은 방문에서 안정적으로 작동 할 수 있도록 할 수 있습니다. 이 기사는 Nginx 프록시 서버를 사용하여 Docker 환경에서 여러 웹 서버의로드 밸런싱을 구성하는 방법을 자세히 소개합니다.
먼저 Docker 및 Nginx를 설치해야합니다. 설치 방법은 Docker 및 Nginx의 공식 문서를 참조하고 운영 체제에 따라 적절한 설치 단계를 선택하십시오.
로드 밸런싱을 구현하기 전에 먼저 여러 웹 서버 인스턴스를 생성해야합니다. Docker를 사용하여 여러 웹 서버를 배포합니다. 다음은 웹 서버 이미지를 구축하기위한 간단한 dockerfile입니다.
Nginx에서 : 최신 복사 index.html/usr/share/nginx/html/ nginx.conf /etc/nginx/nginx.conf를 복사하십시오 80 노출
이 dockerfile에서는 공식 NGINX 이미지를 기반으로 웹 서버 이미지를 작성하여 index.html 및 nginx.conf 파일을 컨테이너에 복사합니다. 표시 해야하는 웹 페이지 컨텐츠는 index.html에 배치 할 수 있습니다. nginx.conf는 Nginx 서비스의 관련 설정을 구성하는 데 사용됩니다.
다음으로로드 밸런싱을 달성하려면 Nginx 프록시 서버를 구성해야합니다. nginx.conf라는 구성 파일을 만들고 다음을 추가하십시오.
http { 상류 백엔드 { 서버 웹 1 : 80; 서버 웹 2 : 80; } 서버 { 80; 위치 / { proxy_pass http : // 백엔드; proxy_set_header 호스트 $ 호스트; } } }
이 구성에서는 두 개의 웹 서버 (Web1 및 Web2)가 포함 된 Backend라는 업스트림 서버 그룹을 정의합니다. 서버 블록에서는 Nginx 프록시 서버의 80 포트를 바인딩하고 Proxy_pass 지시문을 통해 트래픽을 백엔드 그룹으로 전달합니다. proxy_set_header는 요청 된 호스트 헤더가 올바르게 전달되는지 확인하는 데 사용됩니다.
Nginx 구성을 완료 한 후 Docker를 통해 웹 서버 및 Nginx 프록시 서버를 시작할 수 있습니다. 먼저 웹 서버 이미지를 빌드하고 다음 명령을 실행하십시오.
Docker Build -t 웹 서버.
그런 다음 여러 웹 서버 인스턴스를 실행하십시오. 다음 명령을 실행하여 두 개의 웹 서버를 시작할 수 있습니다.
Docker Run -D -Name Web1 Web -Server Docker Run -D -Name Web2 웹 서버
다음으로 Nginx 프록시 서버 인스턴스를 시작하고 다음 명령을 실행하십시오.
Docker Run -D -P 80:80 -이름 nginx -proxy -link web1 -link web2 nginx
여기서 -링크 매개 변수는 nginx 프록시 서버를 두 개의 웹 서버 인스턴스에 연결합니다. 이런 식으로 Nginx는 웹 서버에 트래픽을 골고루 배포 할 수 있습니다.
이제 브라우저를 통해 Nginx 프록시 서버의 IP 주소 또는 도메인 이름에 액세스하여로드 밸런싱 기능을 테스트 할 수 있습니다. 각 요청은 Nginx 프록시 서버에 의해 다른 웹 서버 인스턴스로 전달되어로드를 공유합니다.
또한 웹 서버 컨테이너의 로그를 확인하여 요청이 여러 인스턴스에 고르게 할당되었는지 확인할 수 있습니다.
Docker Logs Web1 Docker Logs Web2
Docker와 Nginx 프록시 서버를 결합하여 여러 웹 서버의로드 밸런싱을 쉽게 달성 할 수 있습니다. 이 방법은 운영하기 간단 할뿐만 아니라 유연성과 확장 성이 높으며 대부분의 웹 응용 프로그램의 요구를 충족시킬 수 있습니다. 이 기사의 내용이 도움이되기를 바랍니다.