【问题标题】:Apache mod_proxy with Redmine on sub-URIApache mod_proxy 与 Redmine 在子 URI 上
【发布时间】:2012-10-25 02:00:09
【问题描述】:

我一定已经阅读了互联网上关于 Redmine 和 Apache 的每一篇文章,但我仍然无法让它工作!

我使用 Thin 完美地在 http://server:3000 上运行 Redmine。我们在同一台服务器上有另一个 Apache 服务,它在不同的端口 (8096) 上托管我们的内部 Web 工具,所以我希望 Redmine 遵循相同的约定。

在 httpd.conf 中关于 Apache 的这方面我已经添加:

ProxyPass /redmine http://127.0.0.1:3000/
ProxyPassReverse /redmine http://127.0.0.1:3000/
ProxyPreserveHost on

这似乎工作正常。如果您输入http://server:8096/redmine,它将调出Redmine起始页面,但点击任何其他链接结果是404

看起来它没有在站点的链接上附加 /redmine,因为单击“管理员”链接也需要我 http://server:8096/admin 而不是 http://server:8096/redmine/admin

我还考虑将以下三个中的任何一个添加到 config/environment.rb,但似乎使用的信息相互矛盾,而且似乎都没有:

ActionController::AbstractRequest.relative_url_root = "/redmine" 
ActionController::Base.relative_url_root = "/redmine" 
Redmine::Utils::relative_url_root = "/redmine" 

非常感谢任何帮助!

编辑::

我也在尝试

ProxyPass /redmine http://server:3000
ProxyHTMLURLMap http://server:3000 /redmine
<Location /redmine>
    ProxyPassReverse http://server:3000
    SetOutputFilter proxy-html
    ProxyHTMLURLMap /               /redmine/
    ProxyHTMLURLMap /redmine/       /redmine
</Location>

但似乎有相同的结果。有趣的是,如果我从本地服务器访问http://localhost:8096/redmine,所有链接似乎都可以工作并指向正确的页面,除了 CSS 和 JS 不工作。

如果我远程手动输入任何链接http://server:8096/redmine/admin,然后我会得到正确的页面和 CSS 等,它只是页面之间的链接不起作用!

【问题讨论】:

    标签: apache redmine mod-proxy


    【解决方案1】:

    伙计,我从未见过这样的 apache 代理更改上下文的工作设置:

    ProxyPass /redmine http://127.0.0.1:3000/
    

    这应该可行:

    ProxyPass /redmine http://127.0.0.1:3000/redmine
    

    为此,您需要设置后端服务器(mongrel 或其他)以在子 uri 上工作。

    我建议您改用 mod_passenger。这是设置 redmine 的最简单方法,它不涉及代理。以下是我的设置:

    brunojcm@brunojcm-htpc:~$ cat /etc/apache2/sites-available/redmine 
    <Directory /var/www/redmine>
        RailsBaseURI /redmine
        PassengerResolveSymlinksInDocumentRoot on
    </Directory>
    

    /var/www/redmine 是指向您的公共 redmine 文件夹的链接。

    brunojcm@brunojcm-htpc:~$ ll /var/www/redmine
    lrwxrwxrwx 1 root root 27 Sep  4  2011 /var/www/redmine -> /opt/redmine/current/public/
    

    您还需要安装 mod_passenger。我不记得具体怎么做,但我相信你需要 gem install passenger 并在运行 passenger-install-apache2-module 之后按照说明进行操作。

    希望对你有帮助!

    【讨论】:

    • 感谢您的回复。你的权利,当我在没有 sub-uri 的情况下进行测试时,我已经设置了它。我目前正在运行 Thin 参数 --prefix /redmine 和您上面所说的 proxypass 配置,它工作正常!
    • 嗨@mhouston100,我有同样的问题你能帮我stackoverflow.com/questions/28861322/…提前谢谢
    猜你喜欢
    • 2015-10-30
    • 2010-11-08
    • 2013-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    相关资源
    最近更新 更多