Apache mod_proxy 到另一台服务器

Apache mod_proxy 到另一台服务器

我正在使用 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

相关内容