서브 디렉토리가있는 Apache VirtualHost 프록시 할 수 있기 때문에

현재 우리는 IIS 서버를 기본 웹 서버로 사용합니다. 우리는 대신에 Apache 서버를 구현하고 있지만 여전히 IIS 서버에 액세스 할 수 있어야합니다. Apache2가이 서버에 서브 도메인을 프록시 할 수 있기 때문에 이는 일반적으로 간단한 것입니다.

그러나 우리의 문제는 IIS 서버에서 dotnetCharting을 사용하고 있으며 라이센스는 도메인 이름과 관련되어 있다는 것입니다. dotnetCharting을 사용하려면 다른 라이센스를 구입해야합니다.

내 질문은 Apache2 프록시가 하위 디렉토리 일 수 있습니까? 예를 들어 ‘www.example.com/subdir’은 IIS 서버를 가리킬 수 있습니까? 불가능해서는 안되는 것처럼 보이지만 이에 대한 해결책을 찾지 못하는 것 같습니다.



답변

확실한. 그러나 조심하십시오. 많은 웹 응용 프로그램은 URL 경로가 변경되도록 설계되지 않았습니다. 응용 프로그램이 현재 서브 디렉토리에서 사용됩니까?

# You'll probably want this to maintain the host mapping in IIS
ProxyPreserveHost On
# Swap in the IP address or internal host name of your IIS server:
ProxyPass /subdir/ http://192.0.2.100/subdir/

또는 URL 경로를 변경하는 경우 리소스 (CSS, javascript, 이미지)의 절대 경로로 인해 많은 응용 프로그램에서이 문제가 발생할 수 있습니다.

ProxyPass /subdir/ http://192.0.2.100/
ProxyPassReverse /subdir/ http://192.0.2.100/

답변

확실한.

  1. mod_proxy 활성화 mod_proxy_http
  2. Apache VHost에서 다음 명령을 설정하십시오.

    ProxyPass /subdir http://iis.server/.../
    ProxyPassReverse /subdir http://iis.server/.../
    

마지막 “/”는 필수입니다.

자세한 정보 :
http://httpd.apache.org/docs/2.2/mod/mod_proxy.html


답변

마지막 슬래시는 필수가 아닙니다. 나는 이렇게 설정했다

ProxyPass /dir http://exmpale.com/dir/

ProxyPassReverse /dir http://exmpale.com/dir/

최상위 레벨은 효과가 있었지만 메인 디렉토리 아래의 하위 디렉토리에 들어간 것은 그렇지 않았습니다.

나는 이것을 이것으로 바꾸었고 모든 것이 효과가있었습니다.

잘못된 정보 감사합니다 !!!

ProxyPass /dir http://exmpale.com/dir

ProxyPassReverse /dir http://exmpale.com/dir