Apache의 단일 IP 서버에 http 웹 사이트와 https 웹 사이트를 설정하는 방법은 무엇입니까?

Apache의 단일 IP 서버에 http 웹 사이트와 https 웹 사이트를 설정하는 방법은 무엇입니까?

http 웹사이트를 설정하고 싶습니다:http://example1.com및 https 웹사이트:https://example2.com다음 구성을 사용합니다.

Listen 80
Listen 443
NameVirtualHost *:80
NameVirtualHost *:443
<VirtualHost *:80>
    ServerName example1.com
    DocumentRoot /var/www/example1.com/public_html
</VirtualHost>

<VirtualHost *:443>
    ServerName example2.com
    DocumentRoot /var/www/example2.com/public_html
    SSLCertificateFile...
    SSLCertificateKeyFile...
    SSLEngine On
</VirtualHost>

그런데 제가 방문하면https://example1.com, 다음으로 리디렉션됩니다.https://example2.com. 내가 방문하면http://example2.com, 다음으로 리디렉션됩니다.http://example1.com. 이것은 내가 원하는 것이 아닙니다. 나는 원한다https://example1.com그리고http://example2.com전혀 존재하지 않습니다. 어떻게 해야 하나요?

답변1

~ 할 것이다VirtualHost 블록을 두 개 더 정의해야 합니다. Apache가 해당 이름과 일치하는 VirtualHost를 찾을 수 없으면 해당 포트에 속한 첫 번째 VirtualHost를 사용합니다.

물론 동일한 웹사이트를 제공할 필요는 없습니다.

  • 일반 페이지와 같은 오류 페이지를 제공할 수 있습니다.404 찾을 수 없음. 이것은 사람들을 짜증나게 할 것입니다.
  • 의 경우 example2.comRewriteRule을 사용하여 모든 HTTP 방문자를 HTTPS로 리디렉션할 수 있습니다.
  • ... 음 example1.com, 왜 HTTPS를 통해 서비스를 제공하지 않는지 정말 이해가 안 가나요?

그러나 액세스 방법에 관계없이 도메인은 여전히 ​​동일한 도메인이기 때문에 도메인이 존재하지 않는다고 브라우저에서 보고하도록 할 수 없습니다.

관련 정보