Перейти к содержанию
IPS Invision Community 🇷🇺

Настройка IPS


ZizionarD

Рекомендуемые сообщения

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 Гб оперативной памяти.

Ссылка на комментарий
4 часа назад, ZizionarD сказал:

я щас е...сь с тем, чтобы Redis работал. Я его установил, но сайт не видет

в дебиане и наверно ubuntu

apt install redis

apt install php7.x-redis

Скрытый текст

2013243197_.png.8ac3d76bf41f01670e5d75f45f97a86f.png

Все работает из коробки.

По умолчанию редису доступна вся память, не имеет пароля. Но самое главное закрыть порт 6379 для внешних подключений и открыть для внутренних.

Ссылка на комментарий

И еще один немаловажный момент. Блокировка китайцев. Это чтобы избавиться от нескольких сотен гостей которые периодически посещают ваш сайт. Сразу скажу, от этих гостей один вред и никакой пользы. Посещалку они не повышают и не учитываются аналитиксом и метрикой.

Используем бесплатные средства geoip

Халявный geoip сейчас обитает тут https://dev.maxmind.com/geoip/geoip2/geolite2/

Там сейчас надо регистрироваться и получить ключи с помощью которых надо скачивать свежие базы. Думаю разберетесь. Сам я уже не помню что там и как, но вам надо своем профиле получить ссылку типа:

Цитата

и по этой ссылке вы всегда будете качать базы 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
Ссылка на комментарий
53 минуты назад, ZizionarD сказал:

а последняя версия Redis 3.0.6?

не знаю. Если устанавливал командой автоматически то надо смотреть версию в репозиториях.

Не заморачивайся.

Ссылка на комментарий

забыл описать про 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
Ссылка на комментарий

Создайте учетную запись или войдите, чтобы комментировать

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти
×
×
  • Создать...

Важная информация

Мы используем файлы cookie и другие средства сохранения предпочтений и анализа действий посетителей сайта. Нажмите «Принять», если даете согласие на это. Политика конфиденциальности - Условия использования

Вверх
Вверх