Автор Тема: Смаляване на CSS/JS в Apache  (Прочетена 3888 пъти)

abadon

  • Напреднали
  • *****
  • Публикации: 510
  • Distribution: Debian
  • Window Manager: KDE
    • Профил
    • WWW
Смаляване на CSS/JS в Apache
« -: Feb 05, 2010, 13:06 »
Здравейте,

Опитваме се да извлека максимална производителност от моят сайт, за да компенсирам факта че го хоствам на слаба виртуална машинка. До момента съм подкарал:

1) Apache MPM worker
2) mod_deflatе,
3) ZLIB компресия в php-то
4) eAccelerator

Повишението на производителността след прилагането на тези неща е просто колосално над 10 пъти.

Сега обаче искам да сервирам смалени (Minifying) CSS и JS файлове. Според Page Speed-а ако сервирам css/js файлове на които са премахнати коментарите, ненужните интервали и т.н. ще спестя 56.6kB от JavaScript-а и 3.4kB от CSS-ите или процентно изразено спестявам 27.9% от JS и 13.4% от css.

Затова се интересувам има ли начин Apache-а да се конфигурира така че когато ми дойде заявка за js/css файл той да премахне ненужните глупости от него и тогава да го компресира и изпрати?

Предварително благодаря!
Активен

Успешното Boot-ване на Windows завършва с рестарт!!!
You are registered as user #382190 with the Linux Counter
Всеки пост - отговор на въпрос

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Re: Смаляване на CSS/JS в Apache
« Отговор #1 -: Feb 05, 2010, 13:58 »
Нещо такова?
http://search.cpan.org/~gtermars/Apache2-Filter-Minifier-CSS-1.04/lib/Apache2/Filter/Minifier/CSS.pm

Ти всъщност нямаш проблеми с виртуализацията, а с Интернет каналa при теб и при твоите клиенти.
« Последна редакция: Feb 05, 2010, 14:05 от VladSun »
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

abadon

  • Напреднали
  • *****
  • Публикации: 510
  • Distribution: Debian
  • Window Manager: KDE
    • Профил
    • WWW
Re: Смаляване на CSS/JS в Apache
« Отговор #2 -: Feb 05, 2010, 14:29 »
Да нещо такова ми трябва само че да работи с php, тъй като това виждам че е за perl или греша?

На мен основния ми проблем е с рама тъй като имам едва 512МВ в момента в който той ми свършва и почвам да ползвам слуап CPU-то ми е на 1.5-2%. Идеята ми е че ако пращам по-малко съдържание заявките ми ще се обработват по-бързо, мрежата ще се разтовари от което мисля че за единица време ще мога да обработя повече заявки.
Активен

Успешното Boot-ване на Windows завършва с рестарт!!!
You are registered as user #382190 with the Linux Counter
Всеки пост - отговор на въпрос

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Re: Смаляване на CSS/JS в Apache
« Отговор #3 -: Feb 05, 2010, 14:42 »
Не съм го пробвал това чудо как работи, но ми изглежда, че докато самият output filter-a е писaн на Perl, то това няма никакво значение за файловете, които ще обслужва.
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

abadon

  • Напреднали
  • *****
  • Публикации: 510
  • Distribution: Debian
  • Window Manager: KDE
    • Профил
    • WWW
Re: Смаляване на CSS/JS в Apache
« Отговор #4 -: Feb 05, 2010, 14:52 »
Навярно си прав, но за да работи респективно ще трябва да пусна и perl на апача. Аз до момента не съм правил подобно нещо, като от perl нямам никаква представа. Но си мисля че ако заредя допълнителни модули за perl те ще натоварят повече отколкото ще ми е ползата от смаляването на css-а или се бъркам?
Активен

Успешното Boot-ване на Windows завършва с рестарт!!!
You are registered as user #382190 with the Linux Counter
Всеки пост - отговор на въпрос

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Re: Смаляване на CSS/JS в Apache
« Отговор #5 -: Feb 05, 2010, 14:59 »
mod_perl2 чак толкова да натовари ... не ми се вярва.

Освен това би трябвало да ползваш опциите за кеширане.

Това http://developer.yahoo.com/performance/rules.html предполагам си го чел?

Друг вариант е да правиш minifying с PHP в самите страници... но пак ще ти трябва някаква система за кеширане.
« Последна редакция: Feb 05, 2010, 15:01 от VladSun »
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

RealEnder

  • Напреднали
  • *****
  • Публикации: 160
  • Distribution: Ubuntu
  • Window Manager: Unity
    • Профил
    • WWW
Re: Смаляване на CSS/JS в Apache
« Отговор #6 -: Feb 05, 2010, 18:23 »
Според мен повече ще бави, ако в реално време ги минимизира - по-добре си ги обработи предварително css и js с нещо от типа на jsmin или на yahoo
Можеш да използваш и css sprites, за да се отървеш от малките картинки, за които браузърите отварят нови връзки (все още piplining-а не е включен по подразбиране в mainstream браузърите). Добър tool за това тук: http://spriteme.org/
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Re: Смаляване на CSS/JS в Apache
« Отговор #7 -: Feb 05, 2010, 18:34 »
За това през цялото време "споменавам" кеширането :)
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

abadon

  • Напреднали
  • *****
  • Публикации: 510
  • Distribution: Debian
  • Window Manager: KDE
    • Профил
    • WWW
Re: Смаляване на CSS/JS в Apache
« Отговор #8 -: Feb 08, 2010, 16:06 »
Според мен повече ще бави, ако в реално време ги минимизира - по-добре си ги обработи предварително css и js с нещо от типа на jsmin или на yahoo
Можеш да използваш и css sprites, за да се отървеш от малките картинки, за които браузърите отварят нови връзки (все още piplining-а не е включен по подразбиране в mainstream браузърите). Добър tool за това тук: http://spriteme.org/

ще го разгледам това за в бъдеще след като си реша предния проблем.
Активен

Успешното Boot-ване на Windows завършва с рестарт!!!
You are registered as user #382190 with the Linux Counter
Всеки пост - отговор на въпрос

abadon

  • Напреднали
  • *****
  • Публикации: 510
  • Distribution: Debian
  • Window Manager: KDE
    • Профил
    • WWW
Re: Смаляване на CSS/JS в Apache
« Отговор #9 -: Feb 08, 2010, 16:16 »
Намерих този проект Smartoptimizer Изглежда много лесен за интегриране като има три стъпки за да заработи:
1) Качва му се директорията smartoptimizer в root директорията на сайта
2) Дават се 777 права на smartoptimizer/cache
3) Качва се или се апендва .htaccess файла му към текущия ни htaccess

И всичко трябва да заработи. Обаче при мен нещата не се получават както трябва и браузъра почва да ми бълва грешки от рода на:
Цитат
SmartOptimizer Error: File not found (../$external_c/adult/%b/622/622D9B8F%%form_ForgotPassword.js).

Моята текущ .htaccess е:
Цитат
RewriteEngine on
Options +FollowSymlinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ navigation.php

RewriteRule .* - [E=HTTP_X_REQUESTED_WITH:%{HTTP:X-Requested-With}]

# METHOD 1: Add a line to your .htaccess file:
#php_flag zlib.output_compression On

.htaccess на SmartOptimizer-а е:
Цитат
<IfModule mod_expires.c>
   <FilesMatch "\.(gif|jpg|jpeg|png|swf|css|js|html?|xml|txt)$">
      ExpiresActive On
      ExpiresDefault "access plus 10 years"
   </FilesMatch>
</IfModule>
<IfModule mod_rewrite.c>
   RewriteEngine On
   
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule ^(.*\.(js|css))$ smartoptimizer/?$1
   
   <IfModule mod_expires.c>
      RewriteCond %{REQUEST_FILENAME} -f
      RewriteRule ^(.*\.(js|css|html?|xml|txt))$ smartoptimizer/?$1
   </IfModule>

   <IfModule !mod_expires.c>
      RewriteCond %{REQUEST_FILENAME} -f
      RewriteRule ^(.*\.(gif|jpg|jpeg|png|swf|css|js|html?|xml|txt))$ smartoptimizer/?$1
   </IfModule>
</IfModule>
<FilesMatch "\.(gif|jpg|jpeg|png|swf|css|js|html?|xml|txt)$">
   FileETag none
</FilesMatch>

Как трябва да ги комбинирам двата .htaccess за да работят нещата?
Активен

Успешното Boot-ване на Windows завършва с рестарт!!!
You are registered as user #382190 with the Linux Counter
Всеки пост - отговор на въпрос

teh

  • Напреднали
  • *****
  • Публикации: 56
    • Профил
Re: Смаляване на CSS/JS в Apache
« Отговор #10 -: Feb 08, 2010, 17:42 »
С AllowOverride пък караш apache-а да прави stat във всяка директория за .htaccess.
Най-чистият вариант е с AllowOverride None и сам да си генерираш/компресираш/обединяваш и т.н. малките css/js като част от development/pre-deployment процеса, от колко да пълниш apache-а с модули които да вършат излишни неща и да хабят повече ресурси.


Тук има още подсказки:
http://httpd.apache.org/docs/2.2/misc/perf-tuning.html
« Последна редакция: Feb 08, 2010, 17:44 от teh »
Активен

abadon

  • Напреднали
  • *****
  • Публикации: 510
  • Distribution: Debian
  • Window Manager: KDE
    • Профил
    • WWW
Re: Смаляване на CSS/JS в Apache
« Отговор #11 -: Feb 08, 2010, 18:21 »
С AllowOverride пък караш apache-а да прави stat във всяка директория за .htaccess.
Най-чистият вариант е с AllowOverride None и сам да си генерираш/компресираш/обединяваш и т.н. малките css/js като част от development/pre-deployment процеса, от колко да пълниш apache-а с модули които да вършат излишни неща и да хабят повече ресурси.


Тук има още подсказки:
http://httpd.apache.org/docs/2.2/misc/perf-tuning.html

Благодаря. Тези подсказки съм ги чел това с AllowOverride го имам предвид. Но сега докато изчистя конфигурацията ми е по-лесно да тествам с .htaccess файлове отколкото да съм вкарал нещата директно в конфигурацията на Апача и да съм с AllowOverride None. Относно "генерираш/компресираш/обединяваш" мисля, че е по-удачно Apache-то да ми ги прави веднъж, след което ги забие в кеш отколкото аз да си ги правя сам. След което като променя нещо просто си трия кеша и готово. Доста по-бързо става отколкото да се редактира крайно не четим код примерно или поне така смятам.
Активен

Успешното Boot-ване на Windows завършва с рестарт!!!
You are registered as user #382190 with the Linux Counter
Всеки пост - отговор на въпрос

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Apache doc
Преводи на документация
kennedy 3 6286 Последна публикация Apr 26, 2002, 18:43
от kennedy
Apache
Настройка на програми
mozly 3 4751 Последна публикация Nov 23, 2002, 15:19
от mozly
Help za Apache???
Настройка на програми
spooky 2 2854 Последна публикация Aug 06, 2003, 14:57
от spooky
Apache
Настройка на програми
HipH0p 1 2417 Последна публикация Dec 20, 2003, 13:51
от n_antonov
Ограничаване на връзките към Apache
Настройка на програми
nothing 3 3194 Последна публикация Jan 16, 2004, 14:06
от nothing