Блог пользователя - Sorix

Aion Center - информационный портал

14 июня 2009 в 20:44

Собственно сайт представляет из себя информационный портал по грядущей игре AION. Это мой первый проект подобного типа.
На сайте пока доступны следующие разделы:

- Новости
http://aioncenter.ru/

- Видео раздел (на базе views)
http://aioncenter.ru/video

- Способности игровых классов (на базе views + свои наработки на ajax)
http://aioncenter.ru/db/skills?class=sorcerer

Защита от DDoS от залогиненых пользователей

11 июня 2009 в 3:14

После тестирования своего сайта программкой AB я получил вполне ожидаемые результаты
Параметры теста: 50 одновременных запросов, всего 1000 запросов.
Страница была очень нагружена контентом и генерировала достаточное кол-во запросов к БД.

У залогиненного пользователя:

Requests per second:    6.02 [#/sec] (mean)
Time per request:       166.014 [ms] (mean, across all concurrent requests)
Transfer rate:          199.63 [Kbytes/sec] received

У анонима (работает кеширование):

Requests per second:    184.58 [#/sec] (mean)
Time per request:       5.418 [ms] (mean, across all concurrent requests)
Transfer rate:          6113.97 [Kbytes/sec] received

Результаты понятное дело очень сильно отличаются, из-за того что у залогиненого пользователя не работает кеширование.

Вопрос: возможно ли как-то лимитировать количество запросов от одного пользователя? Например, так сделано ВКонтакте — нельзя делать более 1 запроса в секунду от 1 пользователя. Друпалу это могло бы сильно помочь при защите от DDoS-атаки, если атакующий ограничен в количестве учетных записей.

Сброс отчета о состянии

15 марта 2009 в 14:36

После переноса на сайта на новый хостинг сделал проверку Drupal'овсим "Отчет о состоянии", где он указал мне на несколько ошибок. После исправления всех ошибок -- одна не исчезла, хотя и была исправлена:

Директории модуля image Missing directory.
The image module's image directory images is missing.

Я подозреваю, что Drupal просто не проводит проверку заново, а скешировал отчет об ошибке от модуля. Как возможно снова заставить его перепроверить существование это директории?

Нормальное время рендера страницы в Drupal (какое?)

12 марта 2009 в 10:51

Подскажите -- каким считается нормально (стандартным, средним) время рендера страницы в Drupal'е? Например, свежеустановленного Drupal'а / друпала средней нагруженности (стандартные блоки новостей, опросов, rss-ленты например и views по обновлениями, например).

Имеется в виду время полного рендера для залогиненого пользователя, то есть без кеширования, которое конечно же отдает страницы моментально.

Кэширование для всех (не блоков)

7 марта 2009 в 1:59

Столкнулся с проблемой производительности сайта.

У меня есть отдельная страницы, в которой выводится информация из модуля views. Время генерации страницы с нуля занимает от 4 до 6 секунд.
Если я включая кеширование, то у анонимов страница показывается естественно мгновенно, однако, у залогиненый пользователей, к сожалению, движок рендерит все заново.

Views: рендеринг поля в tpl

5 марта 2009 в 2:53

Здравствуйте.

В .tpl.php-файлах модуля news для получения значения определенного поля можно использовать такую конструкцию:

<?php $data = $row->{$field->field_alias}; ?>

Мне для грамотного дизайна необходимо объединить несколько переменных в один файл темы (чтобы views не на вставлял своих лишних спанов), я реализовал это путем создания 1 tpl.php-файла, в котором обрабатывается сразу несколько переменных. Пример:

<?php
$znick = $row->node_data_field_logo_field_nickname_value;
$zclass = $row->node_data_field_logo_field_class_value;
$zlvl = $row->node_data_field_logo_field_level_value;
$zcat = $row->node_data_field_logo_field_category_value;

if ($znick) { print 'Имя: ' . $znick . ',  '; }
if ($zclass) { print 'Класс: ' . $zclass . ',  '; }
if ($zlvl) { print 'Уровень: ' . $zlvl . ',  '; }
if ($zcat) { print 'Категория: ' . $zcat . ',  '; }
?>

Однако, данные получаемые из $row содержат немного не ту информацию, а именно информацию по ключу, который хранится в таблицу (то есть, например, в CCK было указано bad_boy|<span class="test">Плохой мальчик</span>, соответственно в БД хранится ключ bad_boy, которому уже потом приписывается Плохой мальчик). У меня как раз при запросах через $row выводится всегда именно bad_boy — то есть не форматированный ключ в таблице.

Как можно добиться вывода форматированного текста (<span class="test">Плохой мальчик</span>)?

HTML вывод переменных в views (cck)

26 февраля 2009 в 22:50

При выводе переменных через views не происходит обработка HTML-тегов. Пример (задал в файле темы views):

<?php print $row->{$field->field_alias}; ?>

Выводит: test

А если написать так:

<?php $output; ?>