Apache2 구성 - AWS Linux 2의 가상 호스트 IP

Apache2 구성 - AWS Linux 2의 가상 호스트 IP

/etc/httpd/conf.d/vhosts.conf:

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/var/www/html/vhosts/main-repo-dir"
    ServerName example.io
    ErrorLog "logs/example.io-error_log"
    CustomLog "logs/example.io-access_log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/var/www/html/vhosts/dev-repo-dir"
    ServerName dev.example.io
    ErrorLog "logs/dev.example.io-error_log"
    CustomLog "logs/dev.example.io-access_log" common
</VirtualHost>


이것은 작동하지만 별표를 URL로 바꾸면 DocumentRoot기본값은 다음과 같습니다 /var/www/html.

<VirtualHost example.io:80>
    ServerAdmin [email protected]
    DocumentRoot "/var/www/html/vhosts/main-repo-dir"
    ServerName example.io
    ErrorLog "logs/example.io-error_log"
    CustomLog "logs/example.io-access_log" common
</VirtualHost>

<VirtualHost dev.example.io:80>
    ServerAdmin [email protected]
    DocumentRoot "/var/www/html/vhosts/dev-repo-dir"
    ServerName dev.example.io
    ErrorLog "logs/dev.example.io-error_log"
    CustomLog "logs/dev.example.io-access_log" common
</VirtualHost>


/etc/hosts:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost6 localhost6.localdomain6

127.0.0.1   example.io
127.0.0.1   dev.example.io


별표를 사용해도 괜찮습니다. 이 시나리오에서 별표를 사용해야 하는 이유를 알고 싶습니다.

답변1

해당 섹션에서는 해당 가상 호스트에 도달할 수 있는 IP만 정의합니다. 이 경우 <VirtualHost *:80>이는 Apache가 모든 네트워크 인터페이스가 해당 가상 호스트에 액세스할 수 있도록 허용한다는 의미입니다. 내 생각에 당신이 경험하고 있는 동작은 당신이 설정한 가상 호스트 중 어느 것도 열려 있지 않기 때문에 기본 문서 루트에 접근하고 있다는 것입니다.

관련 정보