In the last version (0.9), TileMill has an additional dedicated process to serve the tiles. We had to change some bits of our server configuration.
Instead of documenting the new configuration in our internal Wiki, I prefered to share here a few technical lines (quite rough though).
We run TileMill inside a virtual machine on a server with reverse proxy rules.
Reverse Proxy configuration
Assuming your reach your TileMill virtual machine at tilemill.sillywalk.loc, with its two processes running (ports 20008 for tiles, 20009 for the application), your Apache reverse proxy configuration will be :
<VirtualHost *:80>
ServerName tilemill.yourdomain.com
ProxyPreserveHost On
RewriteEngine on
# Serve the tiles as /tiles/
RewriteCond %{REQUEST_URI} ^(/tiles.*)$
RewriteRule ^/tiles(.*) http://tilemill.sillywalk.loc:20008$1 [L,P]
ProxyPassReverse /tiles http://tilemill.sillywalk.loc:20008/
# Serve the application on /
ProxyPass / http://tilemill.sillywalk.loc:20009/
ProxyPassReverse / http://tilemill.sillywalk.loc:20009
</VirtualHost>
TileMill configuration
Now that tiles and application ports are reachable respectively on http://tilemill.yourdomain.com/tiles and http://tilemill.yourdomain.com/, just tell TileMill to serve its pages accordingly in its configuration, /etc/tilemill/tilemill.config :
{
"files": "/usr/share/mapbox",
"server": true,
"coreUrl": "tilemill.yourdomain.com:80",
"tileUrl": "tilemill.yourdomain.com:80/tiles",
"port": 20009,
"listenHost": "0.0.0.0"
}
Restart it...
sudo service tilemill restart
Done !
#tilemill, #apache, #howto - Posted in the Sys category