Apache 서비스가 설정되어 있습니다. 예제 도메인은 domain1.com 및 domain2.com입니다.
내 ssl.conf(etc/apache2/modes-enabled/ssl.conf)
NameVirtualHost *:443
<VirtualHost 172.17.0.122:443>
ServerAdmin [email protected]
DocumentRoot /var/www/domain1.com/htdocs
ServerName domain1.com:443
SSLEngine On
SSLProtocol all
SSLCertificateFile /var/ssl/domain1/domain1.crt
SSLCertificateKeyFile /var/ssl/domain1.key
SSLCertificateChainFile /var/ssl/intermediate.crt
</VirtualHost>
<VirtualHost 172.17.0.123:443>
ServerAdmin [email protected]
DocumentRoot /var/www/domain2.com/htdocs/
ServerName domain2.com:443
SSLEngine On
SSLProtocol all
SSLCertificateFile /var/ssl/domain2/domain2.crt
SSLCertificateKeyFile /var/ssl/domain2.key
SSLCertificateChainFile /var/ssl/intermediate.crt
</VirtualHost>
도메인 1은 http 및 https에서 작동하고 도메인 2 https는 도메인 1 페이지를 표시하기 때문에 도메인 2는 http에서만 작동합니다. 서버에 2개의 IP가 있습니다.
도메인 1의 가상 호스트(etc/apache2/sites-enabled/domain1.com):
<VirtualHost *>
ServerAdmin [email protected]
ServerName www.domain1.com
ServerAlias domain1.com
# Indexes + Directory Root.
DirectoryIndex index.php
DocumentRoot /var/www/domain1.com/htdocs/
# CGI Directory
ScriptAlias /cgi-bin/ /var/www/domain1.com/cgi-bin/
<Location /cgi-bin>
Options +ExecCGI
</Location>
# Logfiles
ErrorLog /var/www/domain1.com/logs/error.log
CustomLog /var/www/domain1.com/logs/access.log combined
</VirtualHost>
apache2ctl -S는 다음을 보여줍니다.
VirtualHost configuration:
172.17.0.122:443 www.domain1.com (/etc/apache2/mods-enabled/ssl.conf:77)
wildcard NameVirtualHosts and _default_ servers:
*:* is a NameVirtualHost default server www.domain3.com (/etc/apache2/sites-enabled/domain3.com:1)
port * namevhost www.domain3.com (/etc/apache2/sites-enabled/domain3.com:1)
port * namevhost www.domain2.com (/etc/apache2/sites-enabled/domain2.com:1)
port * namevhost www.domain1.com (/etc/apache2/sites-enabled/domain1.com:1)
domain1 https를 올바르게 표시하는 구성입니다.
답변1
:443
ServerName 섹션에서 제거되었습니다. 다음과 같은 경우 이름의 일부로 간주됩니다.아니요VirtualHost ServerName 항목이 일치하고 Apache가 찾은 첫 번째 VirtualHost 사이트를 제공합니다.
편집하다이런. 또한 귀하의 진술이 NameVirtualHost
귀하의 연과 VirtualHost
대조되기 때문에 자세히 살펴보십시오.
해당 주소를 사용하는 여러 VHost가 있을 것이라고 선언한 *:443
다음 VHost를 에 지정합니다 172.16.0.123:443
. 이는 서로 다른 주소이므로 Apache는 이를 인식하지 못합니다.
진술을 변경 NameVirtualHost
하거나 <VirtualHost>
일치하도록 구절을 수정하십시오.