我正在使用 apache 作为反向代理,向在内部端口上运行的 Web 服务器发送一些请求,以允许通过我的常规虚拟主机进行访问。这是在 vagrant 中运行的 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 随我的 VM 一起启动并始终运行。奇怪的是,当我在 VM 上执行其他操作时(它上面正在运行一个 Web 应用程序),我没有遇到此问题。只有当我主动调试邮件并使用 Mailcatcher gui 时,我才会突然遇到此问题。
等待一段时间或重新启动 apache 可以“解决”此问题,直到下次弹出。有人能帮我解决这个问题吗?我的代理设置错了吗?
谢谢。