2012-07-07 2 views
1

서버/클라이언트 모델을 서버/서버 모델로 변환하려고합니다. 프로그램을 실행하는 2 대의 컴퓨터가 URL 또는 IP와 같은 다른 프로그램을 통해 서로를 찾습니다. 두 서버가 URL을 통해 연결할 수 있는지 궁금합니다. 아니면 ip 유일한 방법입니까? 예제는 C++을 작성하는 두 번째 날이기 때문에 감사하겠습니다.C++ http tcp server to server connection

답변

2

HTTP의 경우 서버는 클라이언트와 만 통신합니다. 그래서, 당신이 서버에서 서버로 무엇을 의미하는지 모르겠습니다.

HTTP 서버에 액세스하는 데 URL을 사용해도되지만 네트워크 연결을 실제로 설정하려면 먼저 호스트 이름을 IP 주소로 확인해야합니다. 이러한 세부 사항을 수행 할 라이브러리를 찾을 수 있어야하지만 HTTP 서버에 수동으로 소켓 연결을 설정하는 것은 어렵지 않습니다.

단일 서버로 작동하는 여러 서버가있는 구성이 있습니다. 이들은 웹 팜 또는 HTTP 클러스터라고도합니다. 일반적으로 클러스터 앞에로드 밸런서가 있습니다. 많은 HTTP로드 밸런서는 서버 선호도 기능을 지원하여 클라이언트가 후속 작업을 위해 클러스터의 동일한 서버로 전송되도록합니다.

클러스터 구성에서 서버는 파일 시스템 데이터 또는 구성 데이터와 같은 공유 상태를 동기화해야 할 수 있습니다. 이것은 일반적으로 HTTP 서버 프로세스 자체의 외부에있는 일부 메커니즘에 의해 처리됩니다. HTTP 서버 프로세스는 동기화와 협력해야 할 수도 있지만 프로세스를 다시 시작하는 것처럼 간단 할 수 있습니다.

역방향 프록시 구성이라고하는 HTTP 서버 구성의 또 다른 모드가 있습니다. HTTP 프록시 서버 클러스터는 단일 HTTP 서버 앞에 위치합니다. 프록시 서버는 HTTP 서버 자체에서 작업량을 줄이고 비용을 절감 할 수있는 엔티티로 생각되며 HTTP 서버 용량을 늘릴 수있는 확장 가능한 수단을 제공합니다.

구현 방법의 예제로 사용할 수있는 많은 오픈 소스 HTTP 서버 및 프록시 프로젝트가 있습니다. 사용자 지정 서버 응용 프로그램을 직접 만들려는 경우 Boost asio의 HTTP 예제를 살펴볼 수 있습니다.