mod_proxy 예제

또한 다양한 장애 조치 시나리오를 미세 조정하여 이러한 경우에 액세스해야 하는 작업자 및 액세스해야 하는 밸러서도 자세히 설명할 수 있습니다. 예를 들어 아래 설정에서는 세 가지 장애 조치 사례를 구현합니다: 이전 섹션에서HTML URL의 다시 매핑을 설정하지만 스타일시트 또는 스크립트에 있는 URL은 그대로 둡니다. mod_proxy_html은 자바스크립트 나 CSS를 구문 분석하지 않으므로 URL을 처리하려면 텍스트 기반 검색 및 바꾸기가 필요합니다. 이 지시문에 의해 활성화 프록시HTML확장 켜기. 이렇게 하면 지정된 시간 지정 값을 사용하는 원본 서버 URL http://backend.example.com 연결된 작업자가 생성됩니다. 정방향 프록시에서 사용되는 경우 근로자는 일반적으로 ProxySet 지시문을 통해 정의됩니다: ProxyPass의 체계/hostname/port 부분에는 변수가 포함될 수 있지만 지시문이 구문 분석될 때 사용할 수 있는 변수만 포함됩니다(예: 정의 사용). 다른 모든 사용 사례의 경우 mod_rewrite를 대신 사용하는 것이 좋습니다. 우리가 필요로하는 모듈은 mod_proxy 자체와 다른 네트워크 프로토콜을 지원하기 위해 기능을 확장하는 여러 추가 기능 모듈입니다. 특히 도메인 이름 비교는 대/소문자와 관계없이 수행되며 도메인은 항상 DNS 트리의 루트에 고정된 것으로 가정합니다. 따라서 두 도메인 . ExAmple.com .example.com. (후행 기간 참고) 동일한 것으로 간주됩니다.

도메인 비교에는 DNS 조회가 포함되지 않으므로 서브넷 비교보다 훨씬 효율적입니다. 인트라넷 내의 사용자는 WWW 요청에서 로컬 도메인 이름을 생략하여 http://somehost.example.com/ 대신 “http://somehost/”를 요청하는 경향이 있습니다. 일부 상용 프록시 서버는 구성된 로컬 도메인을 암시하는 이 작업을 멀리하고 요청을 제공하기만 하면 됩니다. ProxyDomain 지시문을 사용하고 서버가 프록시 서비스에 대해 구성되면 Apache httpd는 리디렉션 응답을 반환하고 클라이언트를 올바른 정규서버 주소로 보낼 수 있습니다. 사용자의 북마크 파일에는 정규화된 호스트가 포함되므로 이 방법이 선호됩니다. 2단계의 예제 서버와 함께 수행한 경우 위의 블록에 기록된 대로 127.0.0.1:8080을 사용합니다. 고유한 응용 프로그램 서버가 있는 경우 대신 해당 주소를 사용합니다. 이 예제와 같이 특정 URI만 근접할 수 있습니다.

이것은 원래 타사 모듈이었지만 버전 2.4에서 아파치 HTTP 서버의 일부가되었습니다. 위에서 설명한 시나리오에 필요한 구성 지시문은 다음과 같이 합니다. 예를 들어, 밸런서 자체를 클릭하면 다음 페이지가 나타납니다: 백 엔드가 컴퓨터에 무거운 응용 프로그램인 경우 여러 컴퓨터에 부하를 분산시킬 수 있습니다. 아파치는 mod_proxy_loadbalancer로 이를 가능하게 합니다. 현재 개발 버전(및 향후 안정 버전 2.4.x)에는 추가 클러스터링 및 모니터링 지원이 있습니다. ProxyPass 지시문은 백 엔드 서버(또는 밸런서 그룹으로 알려진 서버 클러스터)에 들어오는 요청의 매핑을 지정합니다. 가장 암시적인 예제는 모든 요청(“/”)을 단일 백엔드로 프록시합니다: 회사 example.com www.example.com 웹 사이트가 있으며, 이 웹 사이트는 공용 IP 주소와 DNS 항목을 가지고 있으며 인터넷의 어느 곳에서나 액세스할 수 있습니다. 단일 ProxyPass 지시문이 있는 경우 일반적으로 동일한 인수와 일치하는 ProxyPassReverse 지시문을 원할 것입니다. 여러 가지가 있는 경우 경로 계층 구조의 단일 ProxyPassReverse 지시문을 사용하여 필요한 범위를 얻을 수 있습니다. 이전 메서드는 더 이상 사용되지 않습니다.

변경의 이유는 ProxyHTMLEnable mod_proxy_html 및 mod_xml2enc를 구성하고 올바르게 상호 작용하는 것을 보장하기 때문입니다.