웹 로드 밸런싱(Load Balancing)은 간단히 말해서 "업무"를 우리 서버 클러스터에 할당하는 것이며, 백엔드 웹 서버를 보호하려면 적절한 할당 방법을 사용하는 것이 매우 중요합니다.
역방향 프록시 부하 분산
역방향 프록시 서비스의 핵심 작업은 주로 HTTP 요청을 전달하여 브라우저와 백엔드 웹 서버 간의 중계 역할을 하는 것입니다. 7계층 네트워크 구조 중 7번째 계층인 HTTP 계층(애플리케이션 계층)에서 작동하기 때문에 '7계층 로드 밸런싱'이라고도 불린다. 리버스 프록시로 사용할 수 있는 소프트웨어는 많이 있으며, 가장 일반적인 소프트웨어 중 하나는 Nginx입니다.
Nginx는 전달 전략을 자유롭게 사용자 정의하고 서버 트래픽 가중치를 할당하는 등의 작업을 수행할 수 있는 매우 유연한 역방향 프록시 소프트웨어입니다. 역방향 프록시에서 일반적인 문제는 웹 서버에 저장되는 세션 데이터입니다. 일반적인 로드 밸런싱 전략은 요청을 무작위로 할당하기 때문입니다. 동일한 로그인 사용자의 요청이 동일한 웹 시스템에 할당된다는 보장이 없으며, 이로 인해 세션을 찾을 수 없는 문제가 발생합니다.
두 가지 주요 솔루션이 있습니다.
동일한 사용자의 요청이 동일한 시스템에 속하도록 역방향 프록시의 전달 규칙을 구성합니다(쿠키 분석을 통해). 복잡한 전달 규칙은 더 많은 CPU를 소비하고 부담도 증가시킵니다. 프록시 서버에서.
redis/memchache 등 세션 등의 정보를 저장하려면 독립적인 서비스를 이용하는 것이 좋습니다.
역방향 프록시 서비스도 캐싱을 활성화할 수 있으며, 활성화하면 역방향 프록시의 부담이 커지므로 주의해서 사용해야 합니다. 이 로드 밸런싱 전략은 구현 및 배포가 매우 간단하며 성능도 비교적 좋습니다. 그러나 "단일 실패 지점"이라는 문제가 있습니다. 중단되면 많은 문제가 발생합니다. 더욱이, 웹 서버의 수가 후기 단계로 계속해서 증가함에 따라, 그 자체가 시스템의 병목 현상이 될 수도 있습니다.
프로필 샘플:
#user nobody; worker_processes 1; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; upstream www.hcoder.net { server 192.168.1.188:80 weight=5; server 192.168.1.158:80; } server { listen 80; server_name www.hcoder.net; location / { proxy_pass http://www.hcoder.net; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
위 내용은 웹사이트 로드 밸런싱 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!