(我从 serverfault 发布这个,因为我没有得到任何回复,而且我们这里有很多 apache 专业人士)
我正在使用我的 apache 作为反向代理来处理对在内部端口上运行的网络服务器的一些请求,以允许通过我的常规虚拟主机进行访问。这是在 vagrant 中运行 apache 2.4 的 ubuntu 15 上。
这是我的虚拟主机配置:
<VirtualHost *:80>
DocumentRoot /vagrant/htdocs
ServerName test.vm
# proxy pass mailcatcher to internal webserver
<Location /mailcatcher>
ProxyPass http://localhost:1080
ProxyPassReverse http://localhost:1080
</Location>
<Location /assets>
ProxyPass http://localhost:1080/assets
</Location>
<Location /messages>
ProxyPass ws://localhost:1080/messages
ProxyPassReverse http://localhost:1080
</Location>
<Directory />
Require all granted
</Directory>
<Directory /vagrant/htdocs>
AllowOverride all
</Directory>
</VirtualHost>
有一段时间,这工作正常。然而,过了一段时间,突然间所有对这个虚拟主机的请求都被代理到了内部网络服务器。因此,如果我一开始打电话http://test.vm/cron/mails.php
,它将mails.php
按预期运行。然而,在随机的时间或事件之后,突然上述 URL 将开始提供来自Mailcatcher的响应。
您要查找的消息不存在,或没有此类型的内容
这是您在请求不再存在的消息时收到的 Mailcatcher 错误。
该服务 Mailcatcher 由我的虚拟机启动并一直运行。奇怪的是,当我在 VM 上做其他事情时(上面运行了一个 Web 应用程序),我没有遇到这个问题。只有当我积极调试邮件并使用 Mailcatcher gui 时,我才会突然遇到这种情况。
等待一段时间或重新启动 apache“解决”了这个问题,直到它下次弹出。谁能帮我解决这个问题?我的代理设置错了吗?
谢谢。