가상 호스트, 기존 애플리케이션 유지 폴더 (

하위 폴더 ( http : // ip / app ) 에서 IP로 여러 응용 프로그램을 호스팅 합니다. 또한 도메인을 호스트하고 싶습니다. 도메인이 문서 루트에 제대로로드되도록 가상 호스트를 설정할 수 있었지만 나머지 응용 프로그램은 작동을 멈추고 도메인의 동일한 가상 호스트 문서 루트를 가리 킵니다. .

다른 모든 요청이 동일하게 작동하도록 기존 설정을 유지하려면 어떻게해야합니까?



답변

서버의 IP가 VirtualHost구성한 새 컨텐츠와 별도로 컨텐츠를 제공하기를 원하는 것처럼 들립니다 .

Apache 서버는 달리 구성하지 않는 한 IP에 액세스 할 때 기본적으로 DocumentRoot외부에 지정 VirtualHost됩니다. VirtualHostIP 또는 _default_VirtualHost를 사용 하여 지정하면 작동합니다.

추가 지원이 필요한 경우 Apache 구성 파일을 포함한 추가 정보를 제공하십시오.


답변

이전에 VirtualHost를 정의하지 않은 경우 서버에 대한 요청은 httpd.conf / apache2.conf의 표준 구성을 통해 필터링됩니다.

이는 호스트가 Listen회선에 지정된 내용에 바인딩되고 DocumentRootApache 구성 파일에 지정된 표준 에서 제공됨을 의미합니다 (기본적으로 Redhat 기반 시스템의 경우 / var / www / html).

추가 VirtualHostNameVirtualHost지시문 을 시작하면 이러한 규칙을 따르지 ServerName않고 지정되지 않은 요청이 지정된 첫 번째VirtualHost 스탠자 로 필터링됩니다 .

httpd -S( apache2 -Sdebuntu)로 Apache 구성을 덤프하면 다음을 볼 수 있습니다 .

[root@server]$ httpd -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
     default server somesite.com (/etc/httpd/conf/httpd.conf:1050)
     port 80 namevhost somesite.com (/etc/httpd/conf/httpd.conf:1050)
     port 80 namevhost othersite.org (/etc/httpd/conf/httpd.conf:1074)
Syntax OK

기본 구성과 일치하는 VirtualHost를 정의해야합니다. 즉, 기본 구성 DocumentRoot을 무엇이든지 DocumentRoot설정하고 기본 지시문을 다시 구성하여 덮어 쓰지 않도록해야합니다. 당신은 필요 는 AS이 가상 호스트를 배치 할 첫번째 아파치 설정 한.