Web*_*net 2 linux ssl apache-2.2
是否可以用域名或子域替换“*”?
<VirtualHost *:443>
更新
问题是我在启动 apache 时遇到这个错误:
[Mon Aug 16 13:42:48 2010] [warn] _default_ VirtualHost overlap on port 443, the first has precedence
Run Code Online (Sandbox Code Playgroud)
我在 :443 上有一个用于子域的虚拟主机和一个用于主域的虚拟主机。当我删除子域时,我不再收到该错误。
作为旁注,如果此配置可以更有效,请告诉我如何
domain.com 配置
<VirtualHost *:80>
ServerAdmin webmaster@domain.com
ServerName www.domain.com
ServerAlias domain.com
ServerAlias xx.xxx.xxx.xx
# Directory Root.
DocumentRoot /sites/domain.com/www/
# Logfiles
ErrorLog /sites/domain.com/logs/error.log
CustomLog /sites/domain.com/logs/access.log combined
</VirtualHost>
<VirtualHost *:443>
ServerName www.domain.com
# Directory Root.
DocumentRoot /sites/domain.com/www/
# Enable SSL
SSLEngine On
SSLCertificateFile /sites/domain.com/ssl/star_domain_com.crt
SSLCertificateKeyFile /sites/domain.com/ssl/ikeyless.key
SSLCertificateChainFile /sites/domain.com/ssl/DigiCertCA.crt
SetEnvIf User-Agent ..*MSIE.*. nokeepalive ssl-unclean-shutdown
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
support.domain.com 配置
<VirtualHost *:80>
ServerName support.domain.com
# Directory Root.
DocumentRoot /sites/support.domain.com/www/
# Logfiles
ErrorLog /sites/support.domain.com/logs/error.log
CustomLog /sites/support.domain.com/logs/access.log combined
</VirtualHost>
<VirtualHost *:443>
ServerName support.domain.com
# Directory Root.
DocumentRoot /sites/support.domain.com/www/
# Logfiles
ErrorLog /sites/support.domain.com/logs/error.log
CustomLog /sites/support.domain.com/logs/access.log combined
# Enable SSL
SSLEngine On
SSLCertificateFile /sites/domain.com/ssl/star_domain_com.crt
SSLCertificateKeyFile /sites/domain.com/ssl/domain.key
SSLCertificateChainFile /sites/domain.com/ssl/DigiCertCA.crt
SetEnvIf User-Agent ..*MSIE.*. nokeepalive ssl-unclean-shutdown
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
当我尝试访问 support.domain.com 时,它指向 domain.com 并且在 https 中不会加载我们的支持站点,它在 http 中工作正常。
是的,这是 apache 配置的一个非常强大的部分。
例如,假设您正在为域www.domain.tld提供服务,并且您希望添加指向相同 IP 地址的虚拟主机www.otherdomain.tld。然后您只需将以下内容添加到 httpd.conf:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.domain.tld
ServerAlias domain.tld *.domain.tld
DocumentRoot /www/domain
</VirtualHost>
<VirtualHost *:80>
ServerName www.otherdomain.tld
DocumentRoot /www/otherdomain
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
在此处查看完整文档:http : //httpd.apache.org/docs/2.2/vhosts/
最终答案:将NameVirtualHost *:443指令添加到您的默认配置中。