我正在为自定义“默认”Apache 虚拟主机尝试一些东西,但似乎没有任何效果,我总是得到服务/var/www/html/index.html
而不是我想显示的其他内容或错误。
但最奇怪的事情是:每个访问日志都被记录到/var/log/apache2/other_vhosts_access.log
而不是/var/log/apache2/access.log
.
我尝试通过完全删除 Apache 来重置我的安装(不确定这是否足够)...
systemctl stop apache2
apt-get remove --purge apache2
rm -rf /etc/apache2
rm -rf /var/log/apache2
rm -rf /var/www/html
deluser --remove-home www-data
apt autoremove
...然后重新安装它并仅更改端口(因为我使用 nginx 作为反向代理):
apt install apache2
sed -i 's/Listen 80/Listen 8080/' /etc/apache2/ports.conf
所以我现在在这个安装上只有一个现有的虚拟主机000-default.conf
:(处于其原始状态)并且它处于活动状态(选中apache2ctl -S
)。
即使在那之后,对我的网络服务器的任何调用仍然由 nginx 重新路由到 Apache(这没关系),它仍然将任何内容记录到/var/log/apache2/other_vhosts_access.log
,这表明(据我所知)vhost 不是由 Apache 触发的(这不好)。
它不是一个“包罗万象”的虚拟主机,应该由Host
发送给它的任何标头触发吗?为什么在这种情况下它不会被触发?
apache2.conf
我用's进行了一些测试LogLevel debug
,并研究了/var/log/apache2/error.log
和/var/log/syslog
,但我没有看到任何看起来相关的内容(如果你们中有人认为这可能有帮助,我仍然可以发布整个内容)。
我是个白痴...问题是由唯一与默认安装不同的东西引起的!
如果 Apache 没有侦听端口 80,而是侦听端口 8080(因为它位于拥有对端口 80 的访问权限的 nginx 反向代理后面),则必须相应地设置所有 Apache 虚拟主机。
Apacheconf 总是在两个地方提到端口:
Listen 80
在/etc/apache2/ports.conf
<VirtualHost *:80>
/etc/apache2/sites-available/*.conf
在(或sites-enabled
)中的所有虚拟主机中要更新两者的端口: