Posted 20 января, 20177 yr comment_120584 Добрый день уважаемые пользователи в данной статье я поделюсь с вами опытом по оптимизации IPS форума + защита от ddos. Прошу строго не судить этим делом я занимаюсь не более 2х месяцев, но за этот не длительный срок смог узнать многое о IPS и с чем его едят. Хостинг: Я пользуюсь услугами хостинга beget.com/p466953 (это партнерская ссылка просьба переходить по ней). Примеры будут показаны именно на нём. Перед привязкой IPS к домену не забудьте поменять версию PHP 7.0 (7.1 на ставьте т.к. версия IPS 4.1.17.1 не поддерживает её на данный момент (версия 4.1.17.1) ) и увеличить память для форума. Оптимизация IPS Пожалуй самым важным шагом является безопасность вашего ресурса Зайдите в Админпанель (Система/Обзор/Безопасность) и выполните всё что советует IPS Добавьте директиву "disable_functions = exec,system,popen,proc_open,shell_exec" (Без кавычек) Снижение потребление ресурсов сервера "Планировщик заданий" (CronTab) 1) Зайдите в Админпанель (Система/Настройки/Дополнительно вкладка "Сервисное окружение") 2) Устанавливаем галочку на "Использовать cron (Рекомендуется)" 3) Копируем команду "/usr/bin/php -d memory_limit=-1 -d max_execution_time=0 /home/j/***/***/public_html/applications/core/interface/task/task.php ****" (у вас она своя) 4) Заходим в ваш хостинг и выбираем "Планировщик заданий" (CronTab) 5) В поле команда для выполнения добавляем скопированную строку 6) Редактируем команду на "/usr/local/php-cgi/ваша версия PHP/bin/php -d memory_limit=-1 -d max_execution_time=0 /home/j/ваш путь к форуму/ваше название папки с форумом/public_html/applications/core/interface/task/task.php ваш ключ" 7) Выставляем выполнение команды каждую минуту Снижение потребление ресурсов сервера Метод кэширования 1) Зайдите в Админпанель (Система/Настройки/Дополнительно вкладка "Хранение данных") 2) Выставляем галочку на "Метод хранения данных" База данных MySQL 3) Метод кэширования Memcached или Redis (рекомендую Redis) 4) Адрес сервера Redis "127.0.0.1" Номер порта Redis "6379" Пароль сервера Redis "оставить поле пустым" Кеширование содержимого страницы для гостей "30" Переходим в настройки хостинга 1) Сервисы/Redis 2) Выбираем самый бюджетный вариант 128 мб за 1 рубль 3) Включаем сервис (не в коем случае не включайте "Хранить сессии всех сайтов в Redis" форум будет мертвым до тех пор пока не выключите эту функцию) Оптимизация поисковых систем и .htaccess В корне форума создаём текстовый документ под именем robots.txt Добавляем в него (обратите внимание на "Sitemap: httрs://ваш сайт/sitemap.php" "Host: httрs://ваш сайт" если ваш сайт на http то измените на http) User-agent: * Allow: /applications/core/interface/font/ Disallow: /applications/ Disallow: /datastore/ Disallow: /plugins/ Disallow: /_piwik/ Disallow: /system/ Disallow: /Credits.txt Disallow: /upgrading.html Disallow: /login/ Disallow: /register/ Disallow: /lostpassword/ Disallow: /search/ Disallow: /online/ Disallow: /contact/ Disallow: /activity/ Disallow: /discover/ Disallow: /?tab=* Disallow: /index.php?* Disallow: /*?app=* Disallow: /*sortby=* Disallow: /profile/*/?do=* Disallow: /profile/*/content/ Disallow: /clients/info/ User-agent: Yandex Allow: /applications/core/interface/font/ Disallow: /applications/ Disallow: /datastore/ Disallow: /plugins/ Disallow: /_piwik/ Disallow: /system/ Disallow: /Credits.txt Disallow: /upgrading.html Disallow: /login/ Disallow: /register/ Disallow: /lostpassword/ Disallow: /search/ Disallow: /online/ Disallow: /contact/ Disallow: /activity/ Disallow: /discover/ Disallow: /?tab=* Disallow: /index.php?* Disallow: /*?app=* Disallow: /*sortby=* Disallow: /profile/*/?do=* Disallow: /profile/*/content/ Disallow: /clients/info/ User-agent: * Disallow: /admin/ Disallow: /profile/ Disallow: /discover/ Disallow: /search/ Disallow: /login/ Disallow: /register/ Disallow: /online/ Disallow: /staff/ Disallow: /contact/ Sitemap: https://ваш сайт/sitemap.php Host: https://ваш сайт Отредактируйте файл .htaccess в корне, если его нету то создайте. ## IPS Suite Forum SEO <IfModule mod_rewrite.c> Options -MultiViews RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteRule \.(js|css|jpeg|jpg|gif|png|ico)(\?|$) - [L,NC,R=404] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ## End IPS Suite Forum SEO ## Begin - Expires caching <IfModule mod_expires.c> ## This rule will create an ETag for files based only on the modification timestamp and their size. ## Note: It may cause problems on your server and you may need to remove it FileETag MTime Size SetOutputFilter DEFLATE Header set Expires "max-age=29030400, public" Header unset ETag FileETag None # Enable expiration control ExpiresActive On # Default expiration: 1 hour after request ExpiresDefault "now plus 1 hour" # CSS and JS expiration: 1 week after request ExpiresByType text/css "now plus 1 week" ExpiresByType application/javascript "now plus 1 week" ExpiresByType application/x-javascript "now plus 1 week" # Image files expiration: 1 month after request ExpiresByType image/bmp "now plus 1 month" ExpiresByType image/gif "now plus 1 month" ExpiresByType image/jpg "now plus 1 month" ExpiresByType image/jpeg "now plus 1 month" ExpiresByType image/jp2 "now plus 1 month" ExpiresByType image/pipeg "now plus 1 month" ExpiresByType image/png "now plus 1 month" ExpiresByType image/svg+xml "now plus 1 month" ExpiresByType image/tiff "now plus 1 month" ExpiresByType image/vnd.microsoft.icon "now plus 1 month" ExpiresByType image/x-icon "now plus 1 month" ExpiresByType image/ico "now plus 1 month" ExpiresByType image/icon "now plus 1 month" ExpiresByType text/ico "now plus 1 month" ExpiresByType application/ico "now plus 1 month" ExpiresByType image/vnd.wap.wbmp "now plus 1 month" ExpiresByType application/vnd.wap.wbxml "now plus 1 month" # Other optimizations ExpiresByType application/x-gzip "access plus 1 month" ExpiresByType application/x-shockwave-flash "access plus 1 month" </IfModule> ## End - Expires caching После всех этих не сложных манипуляций нагрузка на сервер снизиться на 30 - 60% Анти ddos (Данный сервис может вызвать сбои в работе вашего форума тщательно всё проверьте после настройки) Не для кого не будет секретом что на данный момент лучшим анти ddos сервисом будет являться cloudflare.com Рассматривать мы будем самый бюджетный вариант за 20$ Начальная настройка сервиса К сожалению я не смогу описать каждую функцию данного сервиса, но расскажу что надо сделать чтобы ваш Redis не конфликтовал c cloudflare Переходим на вкладку Firewall a) Security Level "High" b) Web Application Firewall "On" c) Package: OWASP ModSecurity Core Rule Set "High" Action "Challenge" d) Browser Integrity Check "On" Переходим на вкладку Speed a) Auto Minify выставляем галочку на "JavaScript" b) Polish "Lossy" галочку на WebP (в душе не знаю что это в прицепе как и большинство функций ) с) Enable Accelerated Mobile Links "On "On" SELECT SUBDOMAIN(S) "Выбираем всё что есть" d) Mirage "On" i) Rocket Loader™ "Off" (Очень важно отключить эту функцию т.к. форум начнет зависать) Переходим на вкладку Caching a) Caching Level "Standard" b) Browser Cache Expiration "4 часа" c) Always Online™ "On" d) Development Mode "Off" Переходим на вкладку Network a) HTTP/2 + SPDY "HTTP/2 + SPDY" b) IPv6 Compatibility "On" c) WebSockets "On" d) Pseudo IPv4 "Add Header" i) IP Geolocation "On" e) Maximum Upload Size "100" (к сожалению больше 100 mb вы не сможете загружать на свой форум) Переходим на вкладку Scrape Shield a) Email Address Obfuscation "On" b) Server-side Excludes "On" c) Hotlink Protection "On" Если у вас есть замечания или дополнения которые помогут оптимизировать работу форума, то напишите об этом в этой теме!
20 января, 20177 yr comment_120651 11 часов назад, Lafko сказал: Перед привязкой IPS к домену не забудьте поменять версию PHP 7.0 (7.1 на ставьте т.к. версия IPS 4.1.17.1 не поддерживает её на данный момент (версия 4.1.17.1) ) и увеличить память для форума. Решение: В system/Helpers/Table/Db.php (строка 114) замените $_where = ''; на $_where = array(); В system/Output/Javascript/Javascript.php (строка 874) замените $content = ''; на $content = array(); В system/Output/Plugin/Prefix.php (строка 57) замените $output = ''; на $output = array(); В system/Http/Url.php (строка 1076) замените $return = ''; на $return = array(); Ето не мой урок .... просто опубликовать его для вас
3 февраля, 20177 yr comment_122058 В 21.01.2017 в 00:53, Silence сказал: Решение: 18.1 проверяли? Может там уже все исправили?
3 февраля, 20177 yr comment_122063 5 минут назад, ram108 сказал: 18.1 проверяли? Может там уже все исправили? Начиная с 4.1.18 (даже не 1) уже все так как написал @Silence Edited 3 февраля, 20177 yr by MIXOH
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.