在Apache2.2中,即使使用SSL也可以使用VirtualHost功能
将 Apache 2.2 中的 VirtualHost 适用于使用 SSL 的网站。
补充
根据评论提到的,这个设置适用于 Apache2.2 的版本。对于 Apache2.3 以及更高版本(一般情况下,我们会使用2.4 或更高版本),可以直接使用 NameVirtualHost 而不需要写这个设置。
当前这个指令目前没有任何影响。
听说在 2.4 版本中,即使有设置也不会出错。
(可能在将来的版本升级中会完全废除并导致错误出现)
一般的VirtualHost的配置
当应用Apache的VirtualHost时,若不使用SSL
NameVirtualhost *:80
将其设定后
<VirtualHost *:80>
ServerName virtualhost.example.com
DocumentRoot /var/www/virtualhost.example.com
ErrorLog logs/virtualhost_error_log
CustomLog logs/virtualhost_access_log combined env=!no_log
</VirtualHost>
配置具有SSL的站点的虚拟主机。
只使用SSL的网站,只需要按以下方式进行设置,但仅此还不够。
<VirtualHost *:443>
ServerName sslvirtual.example.com
DocumentRoot /var/www/sslvirtual.example.com
SSLEngine on
SSLCertificateFile /path/to/file.crt
SSLCertificateKeyFile /path/to/file.key
ErrorLog logs/sslvirtual_error_log
CustomLog logs/sslvirtual_access_log combined env=!no_log
</VirtualHost>
虽然出乎意料,但是意识之外了。
NameVirtualhost *:443
如果不包括这个描述,就无法设置VirtualHost,所以不要忘记。