(我在服务器故障中发布了这个帖子,因为我没有得到任何响应,而且我们这里有很多apache专业人员)
我正在使用我的apache作为反向代理,以便对在内部端口上运行的Web服务器发出一些请求,以允许通过我的常规虚拟主机进行访问。这是在ubuntu 15上运行apache 2.4 in vagrant。
这是我的虚拟主机配置:
<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
。但是,经过一段随机的时间或事件后,上述网址会突然开始提供Mailcatcher的回复。
您要查找的邮件不存在,或者没有此类内容
这是您在请求不再存在的消息时收到的Mailcatcher错误。
此服务Mailcatcher是从我的VM启动并一直运行的。奇怪的是,当我在虚拟机上做其他事情时,我不会遇到这个问题(那里有一个运行的网络应用程序)。只有当我主动调试邮件并使用Mailcatcher gui时,我突然有时会遇到这种情况。
等待一段时间或重新启动apache&#34;解决问题&#34;这个问题直到下次弹出。任何人都可以帮我解决这个问题吗?我的代理设置错了吗?
感谢。
答案 0 :(得分:0)
你可以试试这些:
<VirtualHost *:80>
ServerName mailcatcher.domain.tld
ServerAdmin webmaster@domain.tld
<Location />
ProxyPass http://localhost:1080/
ProxyPassReverse http://localhost:1080/
</Location>
<Location /messages>
ProxyPass ws://localhost:1080/messages
ProxyPassReverse ws://localhost:1080/messages
</Location>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
注意: