当我重新加载apache时,会出现以下消息:
Reloading web server config: apache2[Tue Dec 30 10:24:04 2014] [warn] NameVirtualHost *:443 has no VirtualHosts
我检查了 ports.conf 文件,配置如下:
root@li277-183:/etc/apache2# cat ports.conf
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
# This is also true if you have upgraded from before 2.2.9-3 (i.e. from
# Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
# README.Debian.gz
NameVirtualHost *:80
NameVirtualHost *:443
Listen 80
<IfModule mod_ssl.c>
# If you add NameVirtualHost *:443 here, you will also have to change
# the VirtualHost statement in /etc/apache2/sites-available/default-ssl
# to <VirtualHost *:443>
# Server Name Indication for SSL named virtual hosts is currently not
# supported by MSIE on Windows XP.
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
为什么会出现以下警告以及如何解决?
答案 0 :(得分:2)
简单地说:Apache正在侦听443,但该端口上没有定义VirtualHosts(网站)。 (见/etc/apache2/ports.conf
):
NameVirtualHost *:80
Listen 80
<IfModule mod_ssl.c>
NameVirtualHost *:443
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
NameVirtualHost *:443
Listen 443
</IfModule>
我有两个解决方案:
解决方案1 - 启用默认SSL配置(首选,破坏性较小) 在443上定义一个站点(最简单的方法是运行以下代码):
ln -s /etc/apache2/sites-available/default-ssl 000-default-ssl
重新启动apache
/etc/init.d/apache2 restart
解决方案2 - 从端口443取消绑定Apache
注释掉/etc/apache2/ports.conf
的“NameVirtualHost *:443”和“Listen 443”行(例如,在这些行中添加#符号,以便新端口配置文件看起来像:)
NameVirtualHost *:80
Listen 80
<IfModule mod_ssl.c>
# NameVirtualHost *:443
# Listen 443
</IfModule>
<IfModule mod_gnutls.c>
# NameVirtualHost *:443
# Listen 443
</IfModule>