Is the performance problem transfer time or processing time to generate the page?
I don't think the url should cause any problems with local caching of image, since they will be served without the ? sign in the path. I.e directly from apache.
eZ publish sends expiry headers so that every page needs to be reloaded from the server, this means that the html needs to be fetched every time you access the page. I.e. local caching of html is disabled. The same goes for proxies.
If you are using a proxy server; this can cause problems if you are using 3.2.x. In 3.3 we've fixed this problem which was that eZ publish sent the headers() before the session_start() in index.php which overwrote the headers we sent. This caused severe slowdowns when using some proxy servers.
If processing time is slow I recommend looking into the usage of cache blocks in pagelayout.tpl. You can find some information about usage here. http://ez.no/developer/ez_publish_3/documentation/incoming/cache_block_optimization
Just a suggestion: Take a look at the debug information (turn on debugging and surf your site). Look at the timing information that is presented at the bottom of the page. What is it that takes up time? Is it the SQL queries, is it the template rendering, etc. ?
Don't ask me why, but the performance is now much better, from 30 secs to less than 10 secs to open the whole page (this is a good performance from Mozambique, definitely! )
Images are already cached locally, however, the html code, it seems like not cache at all, every time you open the page it seems like it were loading the html code again, so the page behaves like not static html page
eZ publish sends headers telling the webbrowser or proxy not to cache the page at all. This means that the page is always fetched from the webserver.
You could try to alter the header() statements in index.php which disables caching of the html page.
If transfer time is the limiting factor you could try to use the ob_gzhandler to gzip the content before it's sent to the browser. This can be changed in index.php just replace ob_start(); with ob_start("ob_gzhandler"); Then you should get gzipped content served from the server, if the browser supports it.
More information on gzhandler: http://no2.php.net/manual/en/function.ob-gzhandler.php
By the way, I've performance troubles at saving contents. (Saving an article lasts up to one minute)
I've noticed that saving content on ez.no is much faster compared with my installation. (e.g. saving a bug report or a forum post). So maybe I've missed setting some caching values? So, which cache-settings do you recommend if I want to have the best performance?