Ввиду очередной дозы блокировок от РКН настала пора рассказать на своем примере как же настраивается VPN на роутерах и какая вообще логика обхода этих блокировок

Ввиду очередной дозы блокировок от РКН настала пора рассказать на своем примере как же настраивается VPN на роутерах и какая вообще логика обхода этих блокировок
Для обхода блокировок инстаграма и фейсбука использую такие диапазоны IP адресов в роутере:
31.13.24.0/21
31.13.64.0/18
45.64.40.0/22
66.220.144.0/20
69.63.176.0/20
69.171.224.0/19
74.119.76.0/22
102.132.96.0/20
102.132.112.0/21
102.132.120.0/23
102.132.122.0/24
102.132.124.0/22
102.221.188.0/22
103.4.96.0/22
129.134.0.0/16
147.75.208.0/20
157.240.0.0/16
163.114.128.0/20
164.163.191.64/26
173.252.64.0/18
179.60.192.0/22
185.60.216.0/22
185.89.216.0/22
199.201.64.0/22
204.15.20.0/22
Речь пойдет о комбинации nginx + php-fpm (на момент написания статьи версия php — 7.3)
Столкнулся с проблемой, что при небольшой нагрузке на сервер все сайты начинают резко выдавать 502 Bad Gateway
В логах можно наблюдать приблизительно такую картинку:
[error] 7460#7460: *5365312 connect() to unix:/run/php/php7.3-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream
Возникает эта ситуация из-за того, что операционная система отвергает попытки nginx подключиться к unix сокету. Причина либо превышено максимальное кол-во соединений к сокету либо максимальное кол-во не обработанных соединений к сокету.
Проверяем лимиты:
sysctl net.core
Нас интересуют строки:
net.core.somaxconn = 128
net.core.netdev_max_backlog = 200
Из-за них и происходит ошибка, так как максимальное кол-во соединений 128, а максимум не обработанных 200.
Меняем лимиты, в файл /etc/sysctl.conf прописываем строки
net.core.somaxconn = 20000
net.core.netdev_max_backlog = 65535
И применяем параметры
sysctl -p
Перезапускаем php-fpm
/etc/init.d/php7.3-fpm restart
И с помощью утилиты loadem проводим тестирование своего сайта и получившейся конфигурации
./loadem -l 1 https://mysite.ru 200
URL: https://mysite.ru
Clients: 2000
Starting
MaTps 7.81, Tps 7.81, Err 0.00%, Resp Time 0.966
Completed 8 requests in 1.03 seconds
Total TPS: 7.74
Avg. Response time: 0.966
Max Response time: 1.064
Обращаем внимание на Err 0.00%. Оно должно теперь быть равно 0 (тестирование до изменений параметров sysctl проводите заранее, само собой)
В качестве исходного материала использовал статью Eduard Yamaltdinov за что ему огромное спасибо.
Выкладываю небольшую подборку бесплатных МТ-прокси, надеюсь РКН не читает мой блог и не заблокирует адреса
tg://proxy?server=proxy.mtproto.net&port=443&secret=deadbeefdeadbeefdeadbeefdeadbeef
tg://proxy?server=ton.tools&port=443&secret=b306b256b03831e9dac33519460aec1e
tg://proxy?server=tonnel.me&port=443&secret=624e543658533aae8d81cd3e0c0c9e04
tg://proxy?server=tg.tonnel.org&port=443&secret=101054b32eb37247efb4664fb750064d
Можете добавить все ссылки себе в клиент и переключаться между ними в случае недоступности
Пара команд и у вас в системе есть php 7.1
Добавляем в новый source в менеджер пакетов apt и обновляем его
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg sudo sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' sudo apt update
устанавливаем php
sudo apt install php7.1-common php7.1-readline php7.1-fpm php7.1-cli php7.1-gd php7.1-mysql php7.1-mcrypt php7.1-curl php7.1-mbstring php7.1-opcache php7.1-json
наслаждаемся :)
В стабильной ветке современного debian перестал существовать mysql и он теперь стал mariadb. Почему так случилось? Потому что компания Oracle купила mysql и решила его лицензировать и продавать для коммерческого использования. Поэтому debian адепты бесплатных лицензий и стабильности выпилили из репозитория mysql и заменили его форком mariadb. Тем, кому это не по душе простейший выход из ситуации описываю в статье.
Читать далее Как установить mysql 5.7 сервер на debian 9 stretch?
При разработке сайтов возникает проблема хранения множества изображений и прочих медиа-файлов. Такие медиа-файлы могут занимать ощутимое количество места на диске, которое в век повального применения ssd дисков становится дороже. Да и бекапить такие данные часто накладно. Кроме того эти файлы создаются один раз и хранятся всё время существования сайта (зачастую), и таскать эти файлы за собой с сервера на сервер с каждым годом становится неприятно. Знакомо? Давайте попробуем разобраться как дешево можно решить проблему.
Читать далее Настройка nginx для раздачи статики и экономия места на диске
Оптимизация SQL (в частности MySQL) довольно обширная тема и нет единого рецепта, который бы дал ответ на ваш конкретный вопрос. Поэтому попробую отталкиваясь от собственного опыта оптимизации сайтов поделиться своими знаниями в этом материале. Стоит также отметить, что речь сейчас будет только о запросах SELECT, остальные запросы не так критичны в плане скорости работы зачастую.
Отслеживание конверсии в соцсети Вконтакте
Кстати, хочу посоветовать сайт https://trustoff.ru — хороший сайт о мобильных устройствах :)