로컬 IP 127.0.1.2를 Apache 서버의 다른 디렉터리에 매핑

로컬 IP 127.0.1.2를 Apache 서버의 다른 디렉터리에 매핑

VirtualHost내 로컬 호스트(Apache 서버)에는 서로 다른 디렉토리를 가리키는 두 개의 포트 80이 있습니다 .

내 두 개의 conf 파일은 다음과 같습니다.

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot /home/myuser/project_1/

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<VirtualHost *:80>
    ServerName project2
    DocumentRoot /home/myuser/project_2/

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

/etc/hosts파일에서:

127.0.0.1 localhost
127.0.1.2 project2

이제 입력하면 디렉터리 http://localhost에 매핑되고 디렉터리 에 매핑됩니다 . 여기에서는 모든 것이 괜찮지만 입력하면 항상 디렉토리 대신 첫 번째 항목에 매핑됩니다 . 즉, URL 대신 에 매핑됩니다.project_1http://project2/project_2127.0.1.2project_1project_2localhostproject2

왜 이런거야? 어떻게 역 매핑을 할 수 있나요?

답변1

가상 호스트 구성에서는 지정된 이름 기반 가상 호스트를 사용합니다 ServerName. 즉, 클라이언트 요청의 "Host" 헤더가 일치하는 경우에만 구성이 로드됩니다. Apache가 요청된 호스트를 구성된 가상 호스트와 일치시킬 수 없는 경우 Apache의 기본 동작은 찾을 수 있는 첫 번째 구성된 가상 호스트를 로드하는 것입니다.

올바른 콘텐츠를 얻는 데는 여러 가지 옵션이 있으며, 그 중 하나는 ServerName액세스하려는 콘텐츠와 일치하도록 요청의 "Host" 헤더를 조정하는 것입니다. 또 다른 방법은 IP 주소를 a로 추가하는 것입니다. ServerAlias또는 IP 기반 가상 호스트로 전환하여 그렇게 구성할 수도 있습니다.

관련 정보