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