저는 홈 서버에서 Apache를 사용하고 있으며 주요 애플리케이션 중 하나는 OwnCloud입니다. 따라서 인터넷에서 액세스하려면 URL을 사용합니다 ->
https://my_host.no-ip.org/owncloud
동일한 서버에서 다른 HTTP 애플리케이션을 사용하고 있습니다. 애플리케이션에는 자체 HTTP 서버가 있으며 Apache를 사용하지 않습니다. 따라서 이 시점에서는 8080 및 8081을 HTTP/HTTPS 포트로 사용합니다. 문제는 두 번째 애플리케이션에 액세스하는 것입니다. 예를 들어 호텔에 있지만(WiFi 서비스 사용) 프록시 서버 뒤에 있을 때입니다. 이러한 서버 중 90%는 포트 80과 443만 프록시하고 SOCS를 포함한 다른 포트는 프록시하지 않습니다. 내 ISP는 하나의 IP 주소만 제공하기 때문에 두 개의 다른 IP 주소에 대한 액세스를 분할할 수 없습니다. 그래서 내 질문은 다음과 같습니다. URL을 사용하여 두 번째 앱에 액세스하는 방법이 있습니까?
https://my_host.no-ip.org
URL을 통해 owncloud에 액세스하십시오.
https://my_host.no-ip.org/owncloud
둘 다 표준 포트 443에 있습니다. 이 시점에서 첫 번째 URL은 인터넷 어딘가에 있는 다른 웹 사이트로 리디렉션되는데, 이는 나에게 필요하지 않습니다.
어떤 아이디어가 있나요? 가능합니까?
답변1
포트 8080 및 8081에서 두 번째 Apache 서버를 계속 실행하는 경우 다음 중 하나를 수행할 수 있습니다.
- 들어오는 를 전달할 포트 80의 첫 번째 서버로 역방향 프록시를 설정하십시오
https://my_host.no-ip.org/owncloud
. https://my_host.no-ip.org/owncloud
들어오는 트래픽에 대해 301 전달을 수행합니다https://my_host.no-ip.org:8081/
.https://my_host.no-ip.org/owncloud
에 대해 URL 재작성을 수행합니다https://my_host.no-ip.org:8081/owncloud
.
이 옵션 중 #1을 사용하겠습니다. 이를 수행하는 방법에 대한 자세한 내용은 다음 제목의 문서를 참조하세요.Apache HTTPd를 역방향 프록시(mod_proxy)로 구성.
일반 단계
httpd.conf
디렉토리에 있는 파일을 엽니다<httpd_home>/conf
.다음
LoadModule
지시문을 찾아 줄#
시작 부분에 있는 지시문을 제거하여 주석 처리를 제거하세요.LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so
재라우팅을 활성화하려면 httpd.conf 하단에 다음 줄을 추가하세요.
ProxyPass /console http://localhost:8080/console ProxyPass /images http://localhost:8080/images ProxyPassreverse / http://localhost:8080/