(a)와 같이 환경을 구성하는 경우 IP 주소가 부족해지고 서버는 노출 상태로 방치되기 때문에 선호되지 않는 형태입니다.
(b)와 특정 서버에서 동작하는 애플리케이션에 액세스하는 패킷만 통과시키도록 방화벽을 두는 형태가 일반적입니다.
애플리케이션을 한정할 때 포트 번호를 사용합니다.
컨트롤 비트를 사용하여 패킷이 흐르는 방향이 아니라 액세스 방향을 판단하여 접속 방향을 판단해야 합니다.
방화벽은 패킷의 시점과 종점만을 가지고 판단하므로 위험한 패킷이 서버에 도착하여 서버를 다운시키는 상황을 예방할 수는 없습니다. 이 문제의 원인은 웹 서버의 소프트웨어의 버거에 있으므로 버그를 고쳐서 다운되지 않도록 합니다. 또한, 패킷의 내용을 조사하여 위험한 데이터가 포함된 패킷을 차단하는 별도의 준비가 필요합니다.
클라이언트에서는 부하 분산 장치에 액세스하고 부하 분산 장치가 복수의 웹 서버에 요청을 전달합니다.
부하 분산 장치를 이용해 복수의 웹 서버로 분할
부하 분산 장치(로드 밸런서)를 사용하여 웹 서버와 정기적으로 정보를 교환하여 CPU나 메모리의 사용률 등을 수집하고, 이것을 바탕으로 어느 웹 서버의 부하가 낮은지 판단하거나, 시험 패킷을 웹 서버에 보내 응답 시간으로 부하를 판단하는 방법으로 부하를 판단합니다.
여러 대의 서버를 활용한 부하 분산 뿐만 아니라 캐시 서버를 활용하여 부하 분산을 합니다.
데이터가 캐시에 저장되어 있는 경우
데이터가 캐시에 저장되어 있지 않은 경우
포워드 프록시 : 클라이언트측에 캐시 서버를 두는 방법으로, 캐시 이용뿐만 아니라 방화벽의 역할을 수행합니다. 리퀘스트의 내용을 조사한 후 전송하므로 리퀘스트의 내용에 따라 액세스가 가능한지 판단할 수 있습니다. 보통 브라우저 설정 화면에 준비되어 있는 프록시 서버라는 항목에 포워드 프록시 IP 주소를 설정합니다.
리버시 프록시 : 포워드 프록시를 사용함으로써 발생하는 단점(브라우저에 별도의 설정이 필요하다는 점, 인터넷에 공개하는 웹 서버는 누가 액세스하는지 알 수 없는)을 극복하기 위해 리퀘스트 메시지의 URI에 쓰여있는 디렉토리명과 전송 대상의 웹 서버를 대응시켜서 전송할 수 있도록 하는 방법을 채택합니다. 서버측에 설치하는 캐시 서버
트랜스페어런트 프록시 : 캐시 서버에서 전송 대상을 판단하는 방법, 즉 리퀘스트 메시지의 패킷의 IP 헤더를 통해 액세스 대상 웹 서버를 알아내는 방법(전송 대상을 캐시 서버에 설정할 필요가 없습니다.)