[linux-l] reverse proxy

Olaf Radicke briefkasten at olaf-radicke.de
Mi Apr 25 15:26:03 CEST 2012


Hi!

Ich habe folgendes Problem mit meinem reverse oproxy:

Der Server auf dem der revers proxy läuft hat eine public-IP und eine
private-IP. Das System das die eigentlichen Seiten lifert, hat nur eine
private-IP. Die Anfragen an den revers proxy kommen an, werden weitergeleitet,
beantwortet, und von revers proxy zurückgeschickt. so weit so gut. Das Problem
ist aber, das auf dem Server auf dem die Seiten generiert werden, werden
HTML-Seiten generiert, in denen Links nach dem Schema "http://localhost/"
aussehen. Wenn sie durch den revers proxy durch sind, werden die zwar
ausgetauscht, allerdings mit der privaten IP des reverse proxy, statt mit der
public-IP.

Mittlerweile hab ich schon einiges durchprobiert:  mod_rewrite, mod_substitute,
mod_ext_filter... Aber irgend wie, hat das alle keine Auswirkungen. Unten
zusehen meine Baustelle in der Apache-Conf.

Hat jemand noch ein Tipp?

Gruß

Olaf



<VirtualHost 86.110.76.5:80>
    ServerName 86.110.76.5

    <IfModule mod_rewrite.c>
       RewriteEngine On
       RewriteCond %{HTTP_HOST} ^86\.110\.76\.5 [NC]
       RewriteRule (.*) http://86.110.76.5$1 [L,R=302]
    </IfModule>
    # mod_ext_filter directive to define a filter which
    # replaces text in the response
    ExtFilterDefine sed_rewrite_plone_port mode=output intype=text/html \
      cmd="/bin/sed s/192.168.50.20/86.110.76.5/g"
    ExtFilterDefine sed_rewrite_plone_css mode=output intype=text/css \
      cmd="/bin/sed s/192.168.50.20/86.110.76.5/g"
    ExtFilterDefine sed_rewrite_plone_js mode=output
intype=application/x-javascript \
      cmd="/bin/sed s/192.168.50.20/86.110.76.5/g"


    ################## Zope/Plone ############################################
    # =============== axplone-dev01-1 - test-system ========================
    <Location /dev/>
      ProxyPass        http://192.168.50.20:8004/atix
      ProxyPassReverse http://192.168.50.20:8004/atix
#      SetOutputFilter
sed_rewrite_plone_port;sed_rewrite_plone_css;sed_rewrite_plone_js
    </Location>

    #################  Drupal-Test-Installation #############################
    <Location /drupal/>
      ProxyPass        http://192.168.50.20/drupal/
      ProxyPassReverse http://192.168.50.20/drupal/

#      AddOutputFilterByType SUBSTITUTE text/html
#      Substitute "s|192.168.50.20|86.110.76.5|i"
#      Substitute "s|import|outport|i"
    </Location>
</VirtualHost>



Mehr Informationen über die Mailingliste linux-l