apache2 HTTPS에서 HTTP 역방향 프록시로

apache2 HTTPS에서 HTTP 역방향 프록시로

Apache 2에서 역방향 프록시가 필요하다고 생각되는 것을 설정하려고 합니다.

아파치를 설정했고 Mod_proxy,mod_ssl,Mod_rewrite가 모두 활성화되어 있습니다.

HTTPS 웹 페이지를 통해 미디어 플레이어를 제어하려고 하는데 http 연결이 허용되지 않습니다. 불행히도 제어 시스템은 Https를 수행하지 않습니다. 기술적으로는 실제로 http도 수행하지 않습니다(브라우저가 아닙니다). 하지만 HTTP 패킷을 구성하고 응답을 구문 분석할 수는 있습니다. 나는 다른 제품에도 정기적으로 이 작업을 수행합니다.

그래서 내가 원하는 것은 192.168.0.17:80에 있는 내 apache2 서버에 HTTP 요청을 보내고, Apache 서버가 해당 요청을 192.168.0.12:443에 있는 HTTPS 미디어 서버에 전달하도록 하는 것입니다. 그런 다음 결과 소스 코드를 구문 분석을 위해 일반 텍스트로 원래 클라이언트에 다시 반환합니다. 정보가 구문 분석되면 이를 사용하여 변수를 채운 다음 해당 변수를 사용하여 특정 GUI 요소를 클릭하는 것을 시뮬레이션하는 http 패킷을 생성합니다.

모든 시스템은 제어 시스템 전용 로컬 네트워크에 있으며 인터넷에 연결되어 있지만 프록시가 wan 측의 요청을 처리하도록 할 필요는 없습니다. 실제로 단일 시스템의 요청을 처리하는 데 프록시만 필요합니다. 로컬 IP 주소.

다음과 같은 가상 호스트 파일을 설정해야 한다는 것을 알고 있습니다.

<VirtualHost 1.2.3.4:80>
ServerName foo.com
SSLProxyEngine On
SSLProxyCheckPeerCN on
SSLProxyCheckPeerExpire on
ProxyPass / https://secure.bar.com
ProxyPassReverse / https://secure.bar.com

하지만 어떤 IP 정보가 어디로 이동해야 하는지, 어떤 다른 설정을 변경해야 하는지에 대해 머리를 감쌀 수는 없습니다.

부가적인 질문으로, https 서버에서 로그인을 유지하고 세션 시간이 초과되면 다시 인증하기 위해 Apache를 스크립트하는 방법이 있습니까? 일부 피드백 요소에 대해 몇 초마다 서버를 폴링할 것 같지만 가능하다면 로그인 프로세스를 아파치로 오프로드하는 것이 여전히 좋을 것입니다.

도움을 주셔서 감사합니다. 이제 나는 라즈베리 파이와 아파치를 정확히 4시간 동안 경험했습니다.

답변1

당신은 잘못하고 있습니다.

` RewriteRule의 ServerName foo.com RewriteEngine ^/(.*)$ https://secure.bar.com/$1 [피,엘]

게다가 일반적으로 더 <VirtualHost *>단순하고 더 섹시합니다(물론 NameVirtualHost *존재해야 합니다).

답변2

당신은 가까웠어요.

<VirtualHost 1.2.3.4:80> 
ServerName foo.com
SSLProxyEngine on 
ProxyPass / https://secure.bar.com/      
ProxyPassReverse / https://secure.bar.com/

사이트에 하드 코딩된 호스트가 있는 경우 다음 예제의 대부분을 사용할 수 있습니다.여기, HTTPS 및 SSLProxyEngine On을 사용해야 합니다.

관련 정보