我在 Apache mod_proxy 后面运行了 RabbitMQ,因此我可以通过端口 80 访问 Web 管理界面:
<VirtualHost *:80>
ServerName rabbit.example.com
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:15672/
ProxyPassReverse / http://localhost:15672/
<Location />
Order allow,deny
Allow from all
</Location>
</VirtualHost>
但是,这似乎可行,例如,当我转到“队列”页面并单击其中一个列出的队列时,我会得到一个“未找到”页面和一个如下所示的 URL:
http://rabbit.example.com/#/queues/%2F/myqueue
连接、频道等也是如此。我似乎只能访问首页,但任何更深层次的东西似乎都会导致未找到。
在 Apache mod_proxy 后面配置 RabbitMQ 的正确方法是什么?
首先,您需要阻止 apache2.4 解码路径中的斜杠 (%2F)。为此设置
并且您需要防止像“#”这样的“危险”字符转义。使用 mod_rewrite 这将是 [NE] 标志,并设置了 mod_proxy
这导致: