Ускоренье трака

Oct 08, 2009 14:24

По умолчанию trac, когда работает через mod_python, всё своё содержимое выдаёт через него, хотя с раздачей статичных файлов - картинок, стилей и яваскриптов - сам апач справляется не хуже и, что главное, существенно быстрее: на моей, нагруженной иксами, машине, где заодно живёт и апач с траком, разница в скорости (по результатам замеров файрбагом) достигает ста и более раз.

С одной стороны, можно сменить адреса некоторых общих картинок find /var/db/trac -name trac.ini -exec perl -pi -e 's{= common}{= /trac}' '{}' ';'
и раздавать эти картинки статически: alias_module>
Alias /trac/ /path/to/trac/htdocs/
Но зачем нам полумеры? Надо всю статику быстро раздавать. Поэтому подкаталог chrome не должен обрабатываться мод_питоном: "/projects/[^/]+/chrome">
SetHandler None

Чтоб апач не ругался «404 Not Found», надо создать алиасы для этих каталогов. По идее, для этого должна использоваться директива AliasMatch, но у меня она не заработала: апач, вместо того, чтоб отдавать файлы, начинает бесконечно перенаправлять браузер по всё более длинному адресу, что браузеру достаточно быстро надоедает. Поэтому приходится ставить кучу директив Alias /projects/projectname/chrome/common /path/to/trac/htdocs/
которые можно получить командой ls /var/db/trac | perl -nl -e 'print "\t\tAlias /projects/$_/chrome/common /usr/local/www/trac/htdocs"'
Метод, конечно, какой-то неправильный, но всё-таки вполне работоспособный.

sh, free software, python, apache, perl, скорость, программизм, trac, freebsd

Previous post Next post
Up