我正在使用 Apache2 中的 proxy_balancer 将对 Rails 应用程序的请求代理到应用程序正在运行的端口上的 rails 服务器。这是它的设置方式...
Rails 服务器 Mongrel 运行在 8000 端口,访问 url 时直接http://rails_server:8000网站加载正常
Apache 服务器 站点的 Conf 文件:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName myserver.com
ServerAlias application.myserver.com
<Proxy balancer://application_cluster>
Allow from localhost
BalancerMember http://ip.to.server:8000 retry=10
</Proxy>
ProxyPass / balancer://application_cluster
</VirtualHost>
我遇到的问题是http://rails_server:8000工作正常,但要http://application.myserver.com加载正确的内容,但将所有 HTML 显示为文本,而不是将其呈现为 HTML
答案1
尝试添加
ProxyPassReverse / balancer://application_cluster
就像 Inigo 在他的评论中说的那样。就在 ProxyPass 下方。
(哇,我刚意识到我发这篇文章晚了一年多,这是一个“未解答的问题”,但我怀疑作者永远不会回来)
答案2
我会检查相关 URL 返回的内容类型。听起来好像一个 URL 传递的是“text/html”,另一个传递的是“text/plain”……也许您需要在代理配置中设置一些内容类型。
-d