Ускоряем XenForo: включаем кэширование

А как оно прогнать (извиняюсь за незнание)?
Через SSH не могу, ввиду отсутствия оного.
Ну тогда проверьте, что порт memcached открыт и работает со своего компа с помощью команды

Код:
telnet IP_of_your_XenForo_server 11211
 
mrfmrka а зачем обязательно через сокет коннектится? Почему не через порт?
Потому что не дают через порт, мемкеш не имеет никаких средств авторизации и для безопасности запускают отдельный инстанс для отдельного пользователя через сокет.

А ошибка
ErrorException: MemcachePool::get(): Server 127.0.0.1 (tcp 11211, udp 0) failed with: В соединении отказано (111)
мягко говоря не соответствует конфигу из того же поста.

со своего компа с помощью команды
Со своего компа телнет должен обозначить кукиш, так как нормально настроенный мемкеш не должен торчать наружу. Много очень глупых взломов было из-за этого.
 
Последнее редактирование:
Есть VPS, PHP 5.6 с Zend Opcache, нужно ли еще ставить допом. кеш Memcached или XCache?
 
Подключил SSH, и ничего то мне не показало
Посмотреть вложение 71538
Ну, не запущен у вас сервис memcached. Запускайте :)

Есть VPS, PHP 5.6 с Zend Opcache, нужно ли еще ставить допом. кеш Memcached или XCache?
А можно еще nginx с fastcgi_cache :) Вообще летать будет :)
 
Ну, не запущен у вас сервис memcached. Запускайте :-)
Для тех кто в танке и на бронепоезде
не дают через порт, мемкеш не имеет никаких средств авторизации и для безопасности запускают отдельный инстанс для отдельного пользователя через сокет.

А можно еще nginx с fastcgi_cache :-) Вообще летать будет :-)
Не особо. Форум хреновато ложится fastcgi_cache, разве что для гостей. Какими-то костыльными конфигами можно конечно запихнуть всякие турнирные таблицы и выиграть на пиках. Но в основном такой кеш работает только для гостей.

Но что самое главное, начинать оптимизацию нужно с дебага, настроек форума и наконец-то с плагинов, один кривой плагин сведет все серверные оптимизации и кеширования на нет.
 
У меня при данном кэшировании учетные записи пользователей мешаются,
Потому что для пользователей нужно выставлять bypass (задаёт условия, при которых ответ не будет браться из кэша.) и no_cache (Задаёт условия, при которых ответ не будет сохраняться в кэш). И правильно выставить fastcgi_cache_key.
 
Последнее редактирование:
И решения до сих пор нет? У меня при данном кэшировании учетные записи пользователей мешаются, как исправить подобное - не знаю.
У меня отлично все работает, никаких проблем с учетными записями. На Хабре статью писал, все там описал. Дополнительно недавно еще сделал директорию кэша на RAM диске, немножко побыстрее стало.
 
На Хабре статью писал, все там описал
А это на кой ляд
Код:
# define error page
error_page 404 = @notfound;

# error page location redirect 301
location @notfound {
    return 301 /;
}

Или в корневом локейшене
Код:
try_files $uri /index.php?$uri&$args;
и это же повторяется в location ~ \.php$ - оно уже там лишнее.

Вместо
Код:
location ~ /(internal_data|library) {
         internal;
    }
надо это
Код:
location ~ /(internal_data|library)/ {
         internal;
    }

Ну и так далее...

Ну а эпичное fastcgi_cache_valid 200 10s; - кеш должен быть хотя бы минуту, лучше даже минут 5. Все равно кешируется для гостей, 5 минут не критично даже для посещаемого форума; а эффективность кеша пропорциональна отношению чтения/запись в него.
 
Последнее редактирование:
Smalesh спасибо за замечания. С тех пор, как опубликовал статью, конфиг уже много раз поправлял, там всякие старые отладочные значения закрались к сожалению.

Ну а эпичное fastcgi_cache_valid 200 10s; - кеш должен быть хотя бы минуту, лучше даже минут 5. Все равно кешируется для гостей, 5 минут не критично даже для посещаемого форума; а эффективность кеша пропорциональна отношению чтения/запись в него.

Это значение для fastcgi_cache_valid тоже было отладочное, экспериментальное, для microcache. Я же написал там, что не стал его использовать в итоге.

надо это
location ~ /(internal_data|library)/ {
internal;
}

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

А это на кой ляд
# define error page
error_page 404 = @notfound;

# error page location redirect 301
location @notfound {
return 301 /;
}
Это для заворота всего не найденного на корень форума.
 
Можете пояснить, почему? Множество примеров конфигов видел, как у меня, без слеша.
Потому что без слеша эта тема Library by Waindigo тоже попадет в этот локейшн.

Это для заворота всего не найденного на корень форума.
Я вижу что это редирект, только зачем? Форум умеет обрабатывать 403/404, отдает правильные заголовки - зачем ему в этом мешать.

Навскидку, client_max_body_size 1m; - ставить не менее post_max_size (error 413), send_timeout для админки придется поднимать, large_client_header_buffers 4 4k; - тоже, с какого потолка, open_file_cache явно занижен, часть директив тупо копируют дефолтные (зачем плодить скатерти в конфигах). Например fastcgi_param SCRIPT_NAME $fastcgi_script_name; все равно перепишется include fastcgi_params;. По факту, тупо списано с какой-то подобной статьи без разбора полетов.

А, еще момент - не увидел fastcgi_hide_header Set-Cookie.
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу