포트 80 및 443에 두 개의 HTTP 서버

포트 80 및 443에 두 개의 HTTP 서버

저는 홈 서버에서 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 서버를 계속 실행하는 경우 다음 중 하나를 수행할 수 있습니다.

  1. 들어오는 를 전달할 포트 80의 첫 번째 서버로 역방향 프록시를 설정하십시오 https://my_host.no-ip.org/owncloud.
  2. https://my_host.no-ip.org/owncloud들어오는 트래픽에 대해 301 전달을 수행합니다 https://my_host.no-ip.org:8081/.
  3. https://my_host.no-ip.org/owncloud에 대해 URL 재작성을 수행합니다 https://my_host.no-ip.org:8081/owncloud.

이 옵션 중 #1을 사용하겠습니다. 이를 수행하는 방법에 대한 자세한 내용은 다음 제목의 문서를 참조하세요.Apache HTTPd를 역방향 프록시(mod_proxy)로 구성.

일반 단계

  1. httpd.conf디렉토리에 있는 파일을 엽니다 <httpd_home>/conf.
  2. 다음 LoadModule지시문을 찾아 줄 #시작 부분에 있는 지시문을 제거하여 주석 처리를 제거하세요.

    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    
  3. 재라우팅을 활성화하려면 httpd.conf 하단에 다음 줄을 추가하세요.

    ProxyPass /console http://localhost:8080/console
    ProxyPass /images http://localhost:8080/images
    ProxyPassreverse / http://localhost:8080/
    

관련 정보