Как настроить свой роутер mikrotik для обхода блокировок

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

Читать далее Как настроить свой роутер mikrotik для обхода блокировок

Facebook / instagram ip list

Для обхода блокировок инстаграма и фейсбука использую такие диапазоны 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

Как побороть ошибку Resource temporarily unavailable у nginx?

Речь пойдет о комбинации 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 за что ему огромное спасибо.

Бесплатные MT-proxy для Telegram

Выкладываю небольшую подборку бесплатных МТ-прокси, надеюсь РКН не читает мой блог и не заблокирует адреса

tg://proxy?server=proxy.mtproto.net&port=443&secret=deadbeefdeadbeefdeadbeefdeadbeef

tg://proxy?server=ton.tools&port=443&secret=b306b256b03831e9dac33519460aec1e

tg://proxy?server=iran-1.proxy.digitalresistance.dog&port=443&secret=d41d8cd98f00b204e9800998ecf8427e

tg://proxy?server=tonnel.me&port=443&secret=624e543658533aae8d81cd3e0c0c9e04

tg://proxy?server=tg.tonnel.org&port=443&secret=101054b32eb37247efb4664fb750064d

Можете добавить все ссылки себе в клиент и переключаться между ними в случае недоступности

Как установить php 7.1 в debian 9 stretch ?

Пара команд и у вас в системе есть 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

наслаждаемся :)

Как установить mysql 5.7 сервер на debian 9 stretch?

В стабильной ветке современного debian перестал существовать mysql и он теперь стал mariadb. Почему так случилось? Потому что компания Oracle купила mysql и решила его лицензировать и продавать для коммерческого использования. Поэтому debian адепты бесплатных лицензий и стабильности выпилили из репозитория mysql и заменили его форком mariadb. Тем, кому это не по душе простейший выход из ситуации описываю в статье.
Читать далее Как установить mysql 5.7 сервер на debian 9 stretch?

Настройка nginx для раздачи статики и экономия места на диске

При разработке сайтов возникает проблема хранения множества изображений и прочих медиа-файлов. Такие медиа-файлы могут занимать ощутимое количество места на диске, которое в век повального применения ssd дисков становится дороже. Да и бекапить такие данные часто накладно. Кроме того эти файлы создаются один раз и хранятся всё время существования сайта (зачастую), и таскать эти файлы за собой с сервера на сервер с каждым годом становится неприятно. Знакомо? Давайте попробуем разобраться как дешево можно решить проблему.

Читать далее Настройка nginx для раздачи статики и экономия места на диске

Как оптимизировать SQL запросы

Оптимизация SQL (в частности MySQL) довольно обширная тема и нет единого рецепта, который бы дал ответ на ваш конкретный вопрос. Поэтому попробую отталкиваясь от собственного опыта оптимизации сайтов поделиться своими знаниями в этом материале. Стоит также отметить, что речь сейчас будет только о запросах SELECT, остальные запросы не так критичны в плане скорости работы зачастую.

Читать далее Как оптимизировать SQL запросы