[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