
나는 Apache를 사용하여 SSL 인증서를 사용하여 포트 443의 홈 서버에서 전 세계 여러 사이트를 제공합니다. 어젯밤에 구성 파일을 통해 정의된 포트에서만 사이트를 제공하는 Linux 바이너리를 설치했습니다. Apache가 사이트를 직접 제공하도록 하는 것은 불가능합니다.
따라서 이 사이트는 다음에서 호스팅됩니다.http://127.0.0.1:8081/하지만 443 이상의 Apache 뒤에 숨기고 싶습니다.https://myserver.duckdns.org/webapp/
지금까지 내 사이트 구성 파일에서 이것을 시도했지만 작동하지 않았습니다.
ProxyRequests off
<Proxy *>
allow from all
</Proxy>
RewriteEngine On
RewriteRule ^/(.*) /webapp/$1 [P]
<Location /webapp/>
ProxyPass http://127.0.0.1:8081/
ProxyPassReverse http://127.0.0.1:8081/
</Location>
어떻게 할 수 있는지 아시나요?
ProxyPass와 RewriteRules를 사용하여 이 작업을 수행할 수 있다고 생각했지만 제대로 작동하지 못하는 것 같습니다.
미리 감사드립니다!
답변1
재작성 규칙은 a) 잘못된 대상이 있고 2) 중복됩니다.
RewriteRule은 [P]
다음과 같이 사용됩니다.대안ProxyPass와 함께 사용하지 마세요. [P] 규칙의 다시 쓰기 대상은 로컬 URL이 아닌 원격 웹앱 URL입니다. 예를 들어 다음을 사용할 수 있습니다.
RewriteRule ^/webapp/(.*) http://127.0.0.1:8081/$1 [P]
또는이것:
ProxyPass /webapp/ http://127.0.0.1:8081/
또는이것:
<Location /webapp/>
ProxyPass http://127.0.0.1:8081/
</Location>
(참고: Apache 문서에서는 가능하면 ProxyPass를 사용할 것을 권장합니다.)
귀하의 <Proxy *>
차단은 다음에만 적용되므로 불필요합니다.앞으로클라이언트가 프록시 대상(비활성화한)을 지정하는 프록시.