我正在使用 Debian 10 安装新服务器。我配置了一个虚拟主机以将一些请求定向到 TomEE (8.0.6) 服务器。该服务器在端口 8080 上响应。Apache 配置如下所示:
<VirtualHost www.sample.com:80>
ServerAdmin [email protected]
ServerName www.sample.com
DocumentRoot /var/www/html
<Directory />
Options None
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/html/>
Options -Indexes
AllowOverride None
Require all granted
</Directory>
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel trace5
ProxyPreserveHost On
ProxyRequests Off
ProxyVia Full
<proxy *>
Require all granted
</proxy>
ProxyPass /manager http://www.sample.com:8080/manager
ProxyPassReverse /manager http://www.sample.com:8080/manager
</VirtualHost>
我error.log
收到以下消息:
AH00925: initializing worker http://www.sample.com:8080/manager shared
AH00927: initializing worker http://www.sample.com:8080/manager local
AH00930: initialized pool in child 24391 for (www.sample.com) min=0 max=25 smax=25
当我使用该 URL 时,http://www.sample.com/manager
出现错误 404,并显示以下error.log
消息:
AH00128:文件不存在:/var/www/html/manager
看起来mod_proxy
未获取 URL。模块和会议已加载。同样奇怪的是,我可以从我的目录中获取目录列表文档根目录。
我错过了什么?它可以在具有相同操作系统和 Apache 版本的旧服务器上运行。
答案1
当我尝试了 的几个选项时apachectl -t
,显示apachectl -t -D DUMP_VHOSTS
虚拟主机正在监听 IP 地址 127.0.1.1。这不是服务器所处的 IP 地址。
IP 地址在/etc/hosts
文件中定义,当我将其放入注释中时,Apache2 便按预期做出响应。
我不知道为什么会定义这个地址,也不知道它用于何处,但现在它可以正常工作了。作为副作用,我摆脱了 AJP13 的东西,现在一切都正常了ProxyPass
。