If you want to have a fast serving enviroment splitting the work between Zope and your basic webserver (we use Apache) is the way to go. Let Apache (or what ever webserver) do the repetative serving of images, and pages that don't change often. This way you free up Zope for doing what it does best, managing a dynamic serve environment, and rendering dynamic content.
Are you sure that serving images off of Apache has any effect on performance? I did a lot of testing on that (below) and did see any major difference whether Zope served up the image or Apache did (out of a Zope document). There was a slight increase but not enough (I felt) to deal with the extra hassles of not having the images in Zope. A test document (test.html) just pointing to one image.. Server Software: Zope/Zope Server Port: 80 Document Path: /test.html Document Length: 137 bytes Concurrency Level: 25 Time taken for tests: 21.599 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 340000 bytes HTML transferred: 137000 bytes Requests per second: 46.30 Transfer rate: 15.74 kb/s received Connnection Times (ms) min avg max Connect: 0 4 205 Processing: 183 528 465 Total: 183 532 670 Concurrency Level: 1000 Time taken for tests: 31.391 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 340000 bytes HTML transferred: 137000 bytes Requests per second: 31.86 Transfer rate: 10.83 kb/s received Connnection Times (ms) min avg max Connect: 2 203 21006 Processing: 436 4141 4548 Total: 438 4344 25554 If I referenced the image on the Apache Server at port 8080 Server Software: Zope/Zope Server Port: 80 Document Path: /test.html Document Length: 85 bytes Concurrency Level: 25 Time taken for tests: 19.514 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 287000 bytes HTML transferred: 85000 bytes Requests per second: 51.25 Transfer rate: 14.71 kb/s received Concurrency Level: 1000 Time taken for tests: 29.301 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 287000 bytes HTML transferred: 85000 bytes Requests per second: 34.13 Transfer rate: 9.79 kb/s received BZ