MediaWiki and reverse proxy

I’ve been trying to ProxyPass from a primary server to a backend (but not firewalled) machine running MediaWiki 1.5.2 with very little luck.

I finally come across the solution. backend.machine.edu is the machine hosting MediaWiki. frontend.machine.edu is the machine acting as a reverse proxy.

1. Proxy machine, httpd.conf


ProxyPass /wiki http://backend.machine.edu/wiki

2. On backend.machine.edu edit DefaultSettings.php

$wgServer = ‘http://frontend.machine.edu’;

This *shouldn’t* be necessary as this variable can also be provided in LocalSettings.php. However, I found the early stages of the request cycle were not correctly resolved to the front end machine.

3. Edit LocalSettings.php

Add the (possibly redundant) $wgServer variable

$wgServer = ‘http://frontend.machine.edu’;

I also found that the absolute image path for the Wiki Logo was not resolving correctly through the proxy. Correct this (if necessary) by setting $wgLogo. This assumes that your backend machine is not behind a firewall.

$wgLogo = “http://backend.machine.edu/images/wikilogo.jpg”;

4. Edit squid.conf on squid.machine.org to exclude wiki content

I might want to revisit this decision in the future. For now, I’d rather not fill our cache with Wiki material, saving that space for the heavier acedb content.

acl wiki url_regex -i wiki
no_cache deny wiki

Comments

  1. Cantão! says

    Hi!

    Your solution worked for me exactly as if I had set ProxyPreserveHost On on the frontend machine.

    The problem is that this solution is putting a lot of stress in the backend Apache. To simply access a page in the wiki, its usage jumps to 99%!

    Do you have any hints about that? I’m on Apache 2.0.55 with PHP 4.4.2.

    Cheers, Cantão!

Leave a Reply to Cantão! Cancel reply