Apache에서 일치하지 않는 도메인/하위 도메인에 대한 기본 처리

Apache에서 일치하지 않는 도메인/하위 도메인에 대한 기본 처리

여러 VirtualHost가 포함된 Apache2 구성이 있습니다. 내 DNS는 *.<domain>.<tld>여러 도메인을 허용하도록 설정되어 있습니다. 모든 것이 올바르게 작동하지만 로 이동하면 something-random-here.example.com잘못된 VirtualHost가 선택되는 것 같습니다(첫 번째 또는 마지막으로 찾은 것으로 추측합니다). VirtualHost 항목이 도메인이나 하위 도메인과 일치하지 않는 경우 Apache에게 특정 규칙을 사용하도록 지시하는 방법이 있습니까? 404를 반환하고 싶습니다.

답변1

이름이 일치하지 않으면 Apache는 첫 번째 가상 호스트를 사용합니다. 임의의 이름을 가진 첫 번째 가상 호스트로 새 가상 호스트를 구성하고 원하는 것을 표시하거나 404 페이지를 반환하기만 하면 됩니다.

답변2

와일드카드에는 사이트 구성 파일이 포함됩니다.

Include path/to/site/confs/*httpd.conf

예상 순서대로 로드되도록 사이트 conf 파일을 구성합니다. 예...

01-httpd.conf

02-site1-httpd.conf

03-site2-httpd.conf

등...

Apache는 이를 순서대로 읽습니다. 그런 다음 일치하지 않는 가상 호스트를 포착하고 기본 사이트를 로드하는 대신 404를 반환하기 위해 항상 마지막으로 로드되는 사이트를 만듭니다.

99-catchall-httpd.conf

<VirtualHost *:8080>
 ServerName null
 ServerAlias *
 Redirect 404 /
</VirtualHost>

<VirtualHost *:8443>
 ServerName null
 ServerAlias *
 Redirect 404 /
</VirtualHost>

포트를 httpd가 수신하는 포트로 교체하십시오. 또는 특정 인터페이스를 수신하는 httpd가 있는 경우 대신 다음과 같이 각 인터페이스에 대한 catchall을 추가해야 합니다.

<VirtualHost 192.168.1.101:8080>
 ServerName null
 ServerAlias *
 Redirect 404 /
</VirtualHost>
<VirtualHost 192.168.1.101:8443>
 ServerName null
 ServerAlias *
 Redirect 404 /
</VirtualHost>

<VirtualHost 192.168.1.102:8080>
 ServerName null
 ServerAlias *
 Redirect 404 /
</VirtualHost>

<VirtualHost 192.168.1.102:8443>
 ServerName null
 ServerAlias *
 Redirect 404 /
</VirtualHost>

도움이 되었기를 바랍니다. 나는 이 방법을 사용하여 내가 지정한 순서대로 사이트를 로드하고 일치하지 않는 가상 호스트가 의도치 않게 예상치 못한 사이트를 로드하는 것을 방지합니다.

답변3

언급 했듯이 Moritz BothApache2는 요청한 것과 일치하지 않는 경우 찾은 첫 번째 가상 호스트를 사용합니다.

Apache2를 처음 설치하면 템플릿으로 사용하거나 수정하거나 삭제할 수 있는 기본 웹 사이트 conf가 있습니다. 그리고 저는 항상 000-default.conf가 실제로 무엇을 위한 것인지 궁금했습니다. 왜냐하면 000-default.conf에도 default.conf가 있기 때문입니다. 말한 내용을 읽고 나면 Moritz Both이제 모든 것이 더 이해가 됩니다.

내 서버에 대해 내가 한 일은 기본 호스트 이름(웹사이트)에 대한 구성을 000-default.conf 파일에 복사하고 a2ensite 000-default.

이제 내 웹사이트에 일치하지 않는 도메인 요청이 있을 때마다 내 실제 기본 페이지의 복사본인 000-기본 페이지가 제공됩니다.

관련 정보