ZizionarD Опубликовано 28 февраля, 2020 Поделиться Опубликовано 28 февраля, 2020 Не знал как назвать, но переходим из этой темы сюда) К вопросу о Хранении данных и Кэшировании, я так понял что лучше ставить Redis Ссылка на комментарий
agamer Опубликовано 28 февраля, 2020 Поделиться Опубликовано 28 февраля, 2020 22.12.2019 в 11:55, sovushik сказал: Очень долго подгружает форум, особенно публикация ответов - жду по 7-10 секунд О_о Как я решал эту проблему: Nginx+php-fpm думаю не нужно рассказывать как установить в интернете инструкций куча. /etc/php/7.x/fpm/pool.d/ваш конфиг: pm = static pm.max_children = устанавливается экспериментально. pm.max_requests = 1000 Метод хранения данных Redis pm.max_children = 5 вполне хватит для сервера с 1 Гб оперативной памяти. Ссылка на комментарий
ZizionarD Опубликовано 28 февраля, 2020 Автор Поделиться Опубликовано 28 февраля, 2020 @agamer Окей, это я подправил, я щас е...сь с тем, чтобы Redis работал. Я его установил, но сайт не видет Ссылка на комментарий
agamer Опубликовано 28 февраля, 2020 Поделиться Опубликовано 28 февраля, 2020 4 часа назад, ZizionarD сказал: я щас е...сь с тем, чтобы Redis работал. Я его установил, но сайт не видет в дебиане и наверно ubuntu apt install redis apt install php7.x-redis Скрытый текст Все работает из коробки. По умолчанию редису доступна вся память, не имеет пароля. Но самое главное закрыть порт 6379 для внешних подключений и открыть для внутренних. Ссылка на комментарий
ZizionarD Опубликовано 28 февраля, 2020 Автор Поделиться Опубликовано 28 февраля, 2020 А вот это надо включать? Скрытый текст Ссылка на комментарий
TacTics Опубликовано 28 февраля, 2020 Поделиться Опубликовано 28 февраля, 2020 @ZizionarD Ну как видно у него на скрине выше то включено :) Ссылка на комментарий
ZizionarD Опубликовано 28 февраля, 2020 Автор Поделиться Опубликовано 28 февраля, 2020 @TacTics тьфу, не заметил) Ссылка на комментарий
agamer Опубликовано 28 февраля, 2020 Поделиться Опубликовано 28 февраля, 2020 И еще один немаловажный момент. Блокировка китайцев. Это чтобы избавиться от нескольких сотен гостей которые периодически посещают ваш сайт. Сразу скажу, от этих гостей один вред и никакой пользы. Посещалку они не повышают и не учитываются аналитиксом и метрикой. Используем бесплатные средства geoip Халявный geoip сейчас обитает тут https://dev.maxmind.com/geoip/geoip2/geolite2/ Там сейчас надо регистрироваться и получить ключи с помощью которых надо скачивать свежие базы. Думаю разберетесь. Сам я уже не помню что там и как, но вам надо своем профиле получить ссылку типа: Цитата https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-Country-CSV&license_key=ВАШ_КЛЮЧ&suffix=zip и по этой ссылке вы всегда будете качать базы geoip без авторизации. Бесплатная база обновляется по вторникам, поэтому в cron ставим задание по средам выполнять вот такой php-файл: <?php copy ("https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-Country-CSV&license_key=ВАШ_КЛЮЧ&suffix=zip" , "GeoLite2-Country-CSV.zip" ); После чего у вас появится файл GeoLite2-Country-CSV.zip. Далее клонируем вот эту утилиту к себе на сервер https://github.com/makhomed/nginx-geo cd /opt git clone https://github.com/makhomed/nginx-geo.git nginx-geo И ставим её в cron чтобы она выполнялась после предыдущего php-файла. /opt/nginx-geo/nginx-geo --download --convert --exclude-ipv6 --reload-nginx --src "https://адрес_сайта_где лежит файл/GeoLite2-Country-CSV.zip" После чего в главном конфиге nginx в секции http пишем http { ## # Basic Settings ## geo $geo { default XX; include /etc/nginx/geo/geoip_country_code.conf; } ... } В секции server конфига сайта server { listen 443 ssl; server_name .... ..... if ($geo = CN){ return 502; } ..... } С этого момента можете забыть про пару сотен периодически появляющихся гостей. Примечание. Утилита nginx-geo раньше сама качала базу напрямую с maxmind. Имя файла всегда было GeoLite2-Country-CSV.zip. Но сейчас сделали авторизацию и ссылку с ключом. И теперь имя скачиваемого файла стало динамическим. Типа GeoLite2-Country-CSV.zip?blablabla=blablabla. Из за чего утилита стала вспотыкаться. Поэтому ей нужно подсовывать файл имеющий строгие имя и расширение без хвостиков. Раньше этой утилите не нужно было указывать файл. 1 Ссылка на комментарий
ZizionarD Опубликовано 28 февраля, 2020 Автор Поделиться Опубликовано 28 февраля, 2020 @agamer Я понял спасибо) А как проверить что Redis работает, точнее что в него уже сайт начал сохранять что-то? Ссылка на комментарий
TacTics Опубликовано 28 февраля, 2020 Поделиться Опубликовано 28 февраля, 2020 @agamer на будущие тут во всех темах изображения прячут в скрытый текст Ссылка на комментарий
agamer Опубликовано 28 февраля, 2020 Поделиться Опубликовано 28 февраля, 2020 1 минуту назад, ZizionarD сказал: А как проверить что Redis работает, точнее что в него уже сайт начал сохранять что-то? В админке в поддержке в правой колонке Ссылка на комментарий
ZizionarD Опубликовано 28 февраля, 2020 Автор Поделиться Опубликовано 28 февраля, 2020 Ну ни....я себе) Скрытый текст Ссылка на комментарий
agamer Опубликовано 28 февраля, 2020 Поделиться Опубликовано 28 февраля, 2020 @ZizionarD порт 6379 не забудь закрыть на внешнем сетевом интерфейсе. Иначе тебе в него криптовалюту майнить будут все кому не лень. Ссылка на комментарий
agamer Опубликовано 28 февраля, 2020 Поделиться Опубликовано 28 февраля, 2020 iptables -A INPUT -p tcp -m tcp -i СЕТЕВАЯ КАРТА --dport 6379 -j DROP Ссылка на комментарий
ZizionarD Опубликовано 28 февраля, 2020 Автор Поделиться Опубликовано 28 февраля, 2020 @agamer уже закрыл) @agamer а последняя версия Redis 3.0.6? Ссылка на комментарий
agamer Опубликовано 28 февраля, 2020 Поделиться Опубликовано 28 февраля, 2020 53 минуты назад, ZizionarD сказал: а последняя версия Redis 3.0.6? не знаю. Если устанавливал командой автоматически то надо смотреть версию в репозиториях. Не заморачивайся. Ссылка на комментарий
ZizionarD Опубликовано 28 февраля, 2020 Автор Поделиться Опубликовано 28 февраля, 2020 @agamer ну мне по сути поставить защиту от китайцев и все) Сайт прокачен Ссылка на комментарий
agamer Опубликовано 28 февраля, 2020 Поделиться Опубликовано 28 февраля, 2020 забыл описать про ngix-geo 1. Бан китайцев осуществляется только в nginx. И блочится абсолютно все и динамика и статика. HTML картинки js итп. Куда китаец не ткнется - везде будет 502. Это большой плюс, так как не надо притягивать различные скрипты из php. 2. В конфиге сайта где прописываются fastcgi Цитата location ~* \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass ; # подключаем сокет php-fpm fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param COUNTRY $geo; include fastcgi_params; fastcgi_read_timeout 300; } после чего в php появится новая переменная $_SERVER['COUNTRY'] Думаю не нужно объяснять что это за переменная. Но!!!! Не стоит сразу кидаться показывать пользователю флажок его страны или прогноз погоды. Законы некоторых стран запрещают таргетировать контент на основе геопозиции пользователей. А это значит нельзя показывать пользователям рекламу и прочую информацию на основе геопозиции его IP. И не дай бог вы будете показывать эту информацию другим пользователям, это будет засчитываться как слив. В личном кабинете https://www.maxmind.com/ ищите меню "Do Not Sell My Personal Information Requests". Там подробно сказано кому и чего можно и нельзя. Советую не нарушать. 1 Ссылка на комментарий
Рекомендуемые сообщения
Создайте учетную запись или войдите, чтобы комментировать
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВойти
Уже зарегистрированы? Войдите здесь.
Войти