我在 Apache2 上的虚拟主机配置有一个小问题。
上下文:我有一个安装了 Apache2 的 Raspberry Pi。我想访问我的测试目录:“/var/www/html/test”。
所以我在“/etc/apache2/sites-available”中修改了我的 000-default.conf,如下所示,这有效:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
NameVirtualHost 192.168.1.29:80
<VirtualHost 192.168.1.29:80>
ServerName raspyvan
DocumentRoot /var/www/html/test
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
(raspyvan 是我的路由器和主机文件上的服务器名称)
但我会拒绝IP地址“192.168.1.29”的访问
所以我第二次修改了我的 000-default.conf 文件,如下所示:
Listen 192.168.1.29:80
ServerName DefaultServer
DocumentRoot /var/www/html
NameVirtualHost 192.168.1.29:80
<VirtualHost 192.168.1.29:80>
ServerName 192.168.1.29
<Directory />
Deny from all
</Directory>
</VirtualHost>
<VirtualHost 192.168.1.29:80>
ServerName raspyvan
DocumentRoot /var/www/test
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
现在的问题是IP和主机名的访问被拒绝,我不知道为什么。
编辑:我的名称服务器应用于 DNS 路由器配置和主机 apache 文件。
答案1
当 apache 无法匹配虚拟主机时,它将始终使用它遇到的第一个虚拟主机(这就是为什么我们历来需要每个 ssl 证书一个 ip,直到 sni 出现)。
每个虚拟主机添加一个日志;
ErrorLog ${APACHE_LOG_DIR}/error-default.log
CustomLog ${APACHE_LOG_DIR}/access-default.log combined
和
ErrorLog ${APACHE_LOG_DIR}/error-raspyvan.log
CustomLog ${APACHE_LOG_DIR}/access-raspyvan.log combined
检查日志文件“access-default.log”以查看请求的主机名。