Ticket #1076 (closed bug: fixed)
[webui] 1.2.x - impossible to reverse proxy with apache
| Reported by: | orbisvicis | Owned by: | damoxc |
|---|---|---|---|
| Priority: | critical | Milestone: | 1.3.0 |
| Component: | webui | Version: | 1.2.0_dev |
| Keywords: | webui, regression | Cc: |
Description
The 1.1.x webui included a command-switch to dynamically change the webroot - that is, prefix all urls and redirects with a base url (did it work for all headers/cookies, or only redirects?). See http://forum.deluge-torrent.info/viewtopic.php?f=7&t=10165&st=0&sk=t&sd=a#p53605
1.2.x does not offer this, and because 1.2.x uses ajax/xmlhttprequest it is not possible to reverse proxy deluge-web behind apache, for several reasons:
1) Javascript does not preserve the REFERER Header. Apache mod_rewrite rules such as the following will no longer work. RewriteCond? %{HTTP_REFERER} protocol://some.website.uri:port/deluge/.* RewriteCond? %{REQUEST_URI} ^/deluge/.* RewriteRule? /(.*) /deluge/$1 [PT]
(notice that without tracking the Referer, Rewrite rules most likely would conflict with other webapps)
2) Apache substitute filters are somewhat broken. The following will not work (to rewrite the urls in the xml[ajax],css,javascript,and html)
FilterProvider? text_inflate inflate resp=Content-Type $text FilterChain? +text_inflate
FilterProvider? html_sed sed resp=Content-Type $html FilterChain? +html_sed OutputSed? s#url(["']\(["']\{1,\}\)["'])#url(/deluge\1)#
FilterProvider? js_sed sed resp=Content-Type $javascript FilterChain? +js_sed OutputSed? s#'\(\(/[a-zA-Z]\{1,\}\)\{1,\}/[a-zA-Z]\{1,\}\.[a-zA-Z]\{2,3\}\)'#'/deluge\1'#
FilterProvider? xml_sed sed resp=Content-Type $xml FilterChain? +xml_sed OutputSed? s#\(\(/[a-zA-Z]\{1,\}\)\{1,\}/[a-zA-Z]\{1,\}\.[a-zA-Z]\{2,3\}\)#/deluge\1#
FilterProvider? css_sed sed resp=Content-Type $css FilterChain? +css_sed OutputSed? s#url(\([)]\{1,\}\))#url(/deluge\1)#
FilterProvider? text_deflate deflate resp=Content-Type $text FilterChain? +text_deflate
(notice in this case the limitation with mod_proxy_html: it does not parse inline css. That's why it is also necessary to rewrite the html.)
This is why I'm asking for a 1.2.x re-implementation of this very critical 1.1.x feature.
