Новости Joomla

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

👩‍💻 Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях. На старте его сайт на Joomla 3 вообще не смог обновиться на Joomla 5. Пришлось делать экспорт/импорт материалов. Проделав всё это он запустил-таки этот объём данных на Joomla 5. Тестовый скрипт грузил 200 материалов из этого объёма всего за 94 секунды ))) А главная страница с категориями грузилась 20 секунд. Добавив индекс для таблицы #__content

CREATE INDEX idx_catid_state ON #__content (catid, state);
он сократил время загрузки категорий до 1 секунды. Затем наш герой решил поковырять SQL-запрос в ArticleModel, который отвечает за выборку материалов. И решил заменить тип JOIN на STRAIGHT_JOIN для категорий.
// ->from($db->quoteName('#__content', 'a'))->from(    $db->quoteName('#__content', 'a')    . ' STRAIGHT_JOIN ' . $db->quoteName('#__categories', 'c')    . ' ON ' . $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))// ->join('LEFT', $db->quoteName('#__categories', 'c'), $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))
Что сократило загрузку 200 материалов из 150к с 94 секунд до 5. К слову сказать, боевой сайт на Joomla 3 крутится на 12CPU 64GB рамы. А все манипуляции с кодом он делает на базовом 1CPU 1GB сервере и замеры скорости даны именно для базового сервера. Но это всё в дискуссии, хотя в идеале должно вылиться в Pull Requests. Мы - Open Source сообщество, где никто никому ничего не должен. Джунгли. Но человек ищет пути оптимизации Joomla и предлагает решения. Если оказать поддержку и предложить помощь хотя бы с тестированием самых разнообразных сценариев, то возможно эти улучшения смогут войти в ядро. Пусть не быстро, пусть через несколько лет, пусть не все, но войдут. Достаточно предложить руку помощи и приложить немного усилий.
Дискуссию на GitHub можно почитать здесь.@joomlafeed#joomla #community #php

0 Пользователей и 1 Гость просматривают эту тему.
  • 10 Ответов
  • 2411 Просмотров
*

neo85r

  • Захожу иногда
  • 93
  • 10 / 0
  • Ускорение сайтов
Авторизация на site и www.site
« : 22.09.2010, 13:18:05 »
1. Вопрос
Есть ли возможность при авторизации на сайте http://site.ru также быть авторизованным и на http://www.site.ru?
Т.е. авторизовался на без www, потом перешел по ссылке на www, и авторизовываться повторно не надо?
http://www.site.ru - это алиас http://site.ru, т.е. одно и то же.
2. Вопрос
Если включить кэширование (стандартный модуль Joomla 1.5.20; также стоит sh404sef), зайти на www.site.ru, то в главном меню наблюдается следующий беспорядок:
1. Ссылка на главную выглядит как http://site.ru
2. Ссылки на все остальные пункты всех меню - как http://www.site.ru:

И наоборот:
Если зайти на http://site.ru, то на главную ссылка http://www.site.ru, а на другие http://site.ru
При отключении кэширования все в норме, т.е. "www." внезапно не появляется и не исчезает.

Еще бОльшие непонятки:
1. В логотипе-ссылке, а также в "панели навигации по сайту" (mod_breadcrumbs) такой проблемы как с "главной" замечено не было.
2. Если отключить кэширование меню (в настройках модуля, его выводящего), это не действует, т.е. проблема осталась.
3. Проверялось на 2-х сайтах J 1.5.20, шаблоны разные, sh404SEF версии разные

Дайти пожалуйста ответы, в какую сторону копать  ^-^
*

neo85r

  • Захожу иногда
  • 93
  • 10 / 0
  • Ускорение сайтов
Re: Авторизация на site и www.site
« Ответ #1 : 03.10.2010, 12:13:49 »
из-за указанной в вопросе 2 проблемы авторизованный пользователь при переходе на главную перестал быть авторизованным (вопрос 1). ну да я решил не искать решение проблемы, а сделал просто:
в .htaccess внес 2 строки:
RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
*

prosto-chups

  • Осваиваюсь на форуме
  • 33
  • 4 / 0
  • Сайтостроитель
Re: Авторизация на site и www.site
« Ответ #2 : 20.01.2011, 12:14:55 »
1. Вопрос
Есть ли возможность при авторизации на сайте http://site.ru также быть авторизованным и на http://www.site.ru?
Т.е. авторизовался на без www, потом перешел по ссылке на www, и авторизовываться повторно не надо?
http://www.site.ru - это алиас http://site.ru, т.е. одно и то же.
Такой же вопрос!
Я уже замучался гуглить и искать по форумам, подскажите, как решить эту проблему.
Нужно чтобы сессия была едина для:
http://site.ru, http://www.site.ru, http://subdomain.site.ru, http://newsubdomain.site.ru и так далее... (Движек сайта один, соответственно никаких мостов не нужно...)
То есть, один раз авторизировался и переходя по субдоменам не слетала авторизация, корзина (VirtueMart) и т.д.
Пытался найти где создается сессия и устанавливаются куки, но так ничего и не нашел (((
*

neo85r

  • Захожу иногда
  • 93
  • 10 / 0
  • Ускорение сайтов
Re: Авторизация на site и www.site
« Ответ #3 : 20.01.2011, 19:21:12 »
Впиши в .htaccess:
RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
*

prosto-chups

  • Осваиваюсь на форуме
  • 33
  • 4 / 0
  • Сайтостроитель
Re: Авторизация на site и www.site
« Ответ #4 : 21.01.2011, 17:24:05 »
Впиши в .htaccess:
RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
Просто 301 редирект мне не подходит...
...один раз авторизировался и переходя по субдоменам не слетала авторизация, корзина (VirtueMart) и т.д...
Мне нужно переходить на субдомены с сохранением авторизации и корзины...
*

neo85r

  • Захожу иногда
  • 93
  • 10 / 0
  • Ускорение сайтов
Re: Авторизация на site и www.site
« Ответ #5 : 21.01.2011, 17:31:58 »
переходить на субдомены
на субдомен www или еще какой?
*

prosto-chups

  • Осваиваюсь на форуме
  • 33
  • 4 / 0
  • Сайтостроитель
Re: Авторизация на site и www.site
« Ответ #6 : 24.01.2011, 14:11:52 »
Не только www...
Это может быть:
forum.site.ru
shop.site.ru
photo.site.ru
video.site.ru
И так далее...
Не важно какой субдомен, все они направлены на основную директорию сайта.
То есть forum.site.ru и shop.site.ru ведут на один и тот-же сайт.
Так вот важно, чтобы сессия была одинакова для основного домена и всех субдоменов...
Чтобы переходя на субдомен сохранялись товары в корзине и не нужно было заново авторизироваться.
Нашел место, где посылаются куки браузеру, сменил домен с "site.ru" на ".site.ru", не помогло, убрал полностью, тоже не помогло...
*

neo85r

  • Захожу иногда
  • 93
  • 10 / 0
  • Ускорение сайтов
Re: Авторизация на site и www.site
« Ответ #7 : 24.01.2011, 19:55:22 »
Как понимаю, движок (скрипты, база данных) у всех доменов - один и тот же?
Как способом реализованы разные субдомены, по которым этот движок выдает страницы?
*

prosto-chups

  • Осваиваюсь на форуме
  • 33
  • 4 / 0
  • Сайтостроитель
Re: Авторизация на site и www.site
« Ответ #8 : 25.01.2011, 13:03:51 »
Как понимаю, движок (скрипты, база данных) у всех доменов - один и тот же?
Как способом реализованы разные субдомены, по которым этот движок выдает страницы?
Да, Движек один...
А в настройках хостера добавлены субдомены, ссылающиеся на основную директорию...
*

neo85r

  • Захожу иногда
  • 93
  • 10 / 0
  • Ускорение сайтов
Re: Авторизация на site и www.site
« Ответ #9 : 25.01.2011, 19:00:53 »
Думаю, придется копаться в коде. Покажи сайт, гляну как это вживую выглядит
*

prosto-chups

  • Осваиваюсь на форуме
  • 33
  • 4 / 0
  • Сайтостроитель
Re: Авторизация на site и www.site
« Ответ #10 : 25.01.2011, 19:14:04 »
Думаю, придется копаться в коде. Покажи сайт, гляну как это вживую выглядит
Неделю копался... Докопался наконец-то!
В файле /libraries/joomla/session/session.php немного исправил:
Строка 456:
Код
setcookie(session_name(), '', time()-42000, '/');
заменил на:
Код
setcookie(session_name(), '', time()-42000, '/', '.'.$_SERVER['HTTP_HOST']);
и
Строка 456:
Код
session_set_cookie_params( $cookie['lifetime'], $cookie['path'], $cookie['domain'], $cookie['secure'] );
заменил на:
Код
session_set_cookie_params( $cookie['lifetime'], $cookie['path'], '.'.$_SERVER['HTTP_HOST'], 'false' );

Я и раньше делал тут изменения, но не помогало... Потом, случайно наткнулся на на форуме:
Цитировать
Если поменяете домен проекта на другой, на домен второго уровня, то на третий уровень сессии будут переноситься (но не на 4ый - опять же политики безопасности).
А у меня как-раp домен был третьего уровня (сайт.org.ua), соответственно куки и не передавались субдомену...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Авторизация пользователей

Автор Вик2811

Ответов: 0
Просмотров: 1032
Последний ответ 27.08.2019, 13:55:52
от Вик2811
404 ошибка при обращении http://site.ru/index.php

Автор Oleg Inishev

Ответов: 2
Просмотров: 1721
Последний ответ 19.05.2017, 14:18:30
от SeBun
Авторизация в разделах

Автор terrentol

Ответов: 0
Просмотров: 1409
Последний ответ 09.10.2014, 11:42:45
от terrentol
Дубль главной страницы - site.ru/# - и другие...перенаправление, роботс, источник?

Автор Adrian1111

Ответов: 2
Просмотров: 1316
Последний ответ 02.04.2014, 16:16:06
от espey
Регистрация и авторизация

Автор Hufflepuff

Ответов: 0
Просмотров: 1532
Последний ответ 29.01.2014, 10:34:31
от Hufflepuff