#1076: [webui] 1.2.x - impossible to reverse proxy with apache
-------------------------------+--------------------------------------------
 Reporter:  orbisvicis         |       Owner:  damoxc   
     Type:  bug                |      Status:  new      
 Priority:  critical           |   Milestone:  1.2.0    
Component:  webui              |     Version:  1.2.0_dev
 Keywords:  webui, regression  |  
-------------------------------+--------------------------------------------
 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.

-- 
Ticket URL: <http://dev.deluge-torrent.info/ticket/1076>
Deluge <http://deluge-torrent.org/>
Deluge project

--

You received this message because you are subscribed to the Google Groups 
"Deluge Dev" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/deluge-dev?hl=.


Reply via email to