CDN как сделать правильно обращение к файлам?

Главные вкладки

Аватар пользователя tlito tlito 29 сентября 2014 в 14:42

Здравствуйте, уважаемые профи!
Я уже три дня кое-как пытаюсь разобраться и поднять Google PageSpeed. Летом было 65% для компьютеров, после отключения тяжелых модулей - стало - 71%.
Вчера поднял до 82% с помощью модуля Boost, включения кешей в Производительности, а также опустив JS вниз и добавив Asynchronous JavaScript модуль.
Сегодня прочитал также темы:
http://fr.slideshare.net/VladSavitsky/javascript-drupal-7058289
http://webo.in/articles/all/2009/05-drupal-performance/

Интересно что CDN позволяет поднять PageSpeed даже для небольших сайтов. Я понял только одно: картинки, css, js с одного сайта грузятся последовательно. А если сделать подгрузку их с помощью этого модуля CDN, то они будут грузиться параллельно, не знаю как это ускорит, но PageSpeed гугл это сразу подняло до 90% !!
Но есть вопрос:
я добавил домен, img1.site.com на нем на самом деле нет картинок.
Я сделал в .htaccess реврайт обращений к файлам на этом сайте - на файлы на исходном сайте site.com . То есть такой код:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} robots.txt$ [NC]
RewriteRule ^([^/]+) $1 [L]
RewriteCond %{HTTP_HOST} ^(www\.)?img1\.site\.com$
RewriteRule ^(.*)$ http://site.com/$1 [L,QSA]
</IfModule>

Это на самом деле делает не рерайт, а редирект, то есть при обращении к файлу по адресу img1.site.com/file.jpg в строке адреса меняется адрес на : site.com/file.jpg
Что означает: браузер будет тормозить загрузку, так как будет вестись дополнительный обмен пакетами - на указание переадресации.
Но в pagespeed это все равно дает результат. Я думаю потому что PageSpeed еще не учли такие кривые варианты.

У меня к вам вопрос:
как все-таки сделать рерайт, если оба эти сайта на одном хостинге?
Я пробовал сделать согласно внутренней структуре файлов, то есть выйти из папки субдомена и войти в папку оснвного домена - но не прошло. пишет Bad Request, видимо прав нет или нельзя обращаться к папкам на уровень выше (я кстати нигде не нашел как на уровень вверх обратится примеры).

То есть так не работает, пишет бэд риквест при обращении из папки субдомена в папку главного домена:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} robots.txt$ [NC]
RewriteRule ^([^/]+) $1 [L]
RewriteCond %{HTTP_HOST} ^(www\.)?img1\.site\.com$
RewriteRule ^(.*)$ ../../../../$1 [L,QSA]
</IfModule>

Хостер - макхост, виртуальный.

Как все же оставить достигнутый уровень ПейджСпид и правильно сделать редирект?

ПС: для webo.in откуда одна из статей про разгон оптимизация PageSpeed показывает 99%
Я не думал что такое вообще бывает. Им осталось только время ответа сервера изменить.

Комментарии

Аватар пользователя tlito tlito 1 октября 2014 в 23:07

Указанный вначале вопрос я решил: хостеры предложили добавить алиасы домену. После этого CDN заработал.

Теперь появилась другая проблема: при работае с файлами в менеджере файлов IMCE все картинки также отображаются через cdn-серверы, то есть img1.site.com/images/kart.jpg и также вставляются в запись.
Что делать в этом случае? Как запретить IMCE работать через CDN или как настроить CDN чтобы он не ломал работу IMCE ?

Аватар пользователя tlito tlito 1 октября 2014 в 23:11

Да, и этот вопрос можно было решить тыком: в настройках CDN есть вкладка Другой (ну или Other) И в ней есть поле DRUPAL PATH FOR AUTHENTICATED USERS - в ней кроме admin* нужно еще добавить с новой строки imce*
и тогда cdn не перенаправляет эти пути. и картинки вставляются - с адресами на главном сервере.

Аватар пользователя tlito tlito 11 ноября 2014 в 0:45

Проблема продолжается: поисковики нашли субдомены и проиндексировали, слишком часто выдают их в поиске. это решилось добавлением в robots.txt строки
основной домен не помню как точно.
Вторая проблема: после заходов из поиска на поддомены модуль boost стал и их отдельно кешировать, размер кеша стал большим. Как запретить в .htaccess обращение ко всем файлам на поддоменах кроме .css, .js, .jpg, .jpeg, .gif, .png, .bmp, .tiff без учета регистра?