Показаны сообщения с ярлыком web. Показать все сообщения
Показаны сообщения с ярлыком web. Показать все сообщения

Nextcloud: долгий выход в Google Chrome

https://settled70.blogspot.com/2019/11/nextcloud-google-chrome.html
При использовании Nextcloud заметил проблему с долгим выходом (logout) при использовании браузера Google Chrome. Выход из web-приложения может занимать до нескольких минут. Как выяснилось, проблема была на стороне Chrome (и всех браузеров на движке Chromium) - при выходе он долго удалял куки и кеш сайта. Если это сделать до выхода из меняю настройки браузера, то операция совершалась быстро. Исправляем ситуацию на стороне nextcloud, подошло это решение.

Открываем файл /var/www/nextcloud/core/Controller/LoginController.php, находим и комментируем там строчку: $response->addHeader('Clear-Site-Data', '"cache", "storage"') - у меня это на 131 строке, далее добавляем свой код. Получиться должно следующее:

Шлюз на Ubuntu: автоматический обход блокировок сайтов

Представим ситуацию, в которой сотрудникам компании необходимо получить доступ к заблокированным провайдерами РФ ресурсам. Статья не призывает нарушать закон (хотя, ничего противозаконного в этом нет), а лишь показывает возможность обхода блокировок. Итак, у нас есть шлюз на базе Ubuntu 18.04, сервис бесплатного VPN доступа protonvpn.com и сервис со списком заблокированных IP адресов antifilter.download. С сервиса мы будем брать список недоступных подсетей и создавать маршруты к ним через наш VPN. В итоге пользователи получат доступ к заблокированным ресурсам автоматически без использования дополнительных программ на своей стороне.

Wordpress: WooCommerce счет на оплату в формате PDF

Занялся Интернет-магазином на базе Woocommerce. Заказчик попросил добавить метод оплаты по счету для клиентов без привязки к какой-либо платежной системе. Поискав в сети обнаружил, что готового плагина для этих целей нет. Cоздавать свой плагин для этой цели нет ни возможности, ни бюджета. В данной статье мы воспользуемся 2 плагинами: WooCommerce PDF Invoices & Packing Slips для создания счёта на оплату и WooCommerce Invoice Gateway для добавления метода оплаты по счёту.

SSL сертификат: бесплатное получение и продление, wildcard на все поддомены

Решил обновить статью по получению и продлению бесплатных SSL сертификатов для сайтов на выделенном сервере. Пишу больше для себя, поэтому если возникнут вопросы - пишите в комментариях. Пользоваться будем сервисом letsencrypt.org. На их сайте рекомендуется использовать клиента Certbot. В качестве web сервера у меня nginx, соответственно будем использовать его для подтверждения хоста при получении сертификата.

Установка клиента

Вы можете самостоятельно выбрать на сайте сертбота вашу операционку для добавления репозитория и дальнейшей установки через менеджер пакетов. Я буду использовать скрипт, он ставится на любую ОС, сам доустанавливает нужные пакеты и работает так же, как и любая другая версия.
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
./certbot-auto
В первый раз при запуске скрипт установит все зависимости для работы.

Ubuntu: iptables базовая настройка для защиты web сервера

Есть обычный VDS на Ubuntu с установленными nginx/php-fpm/mysql и т.п. Нам требуется обеспечить минимальную безопасность ограничив сетевые подключения файрволом - закроем все входящие порты кроме перечисленных. Для этого создадим скрипт с командами iptables и настроим его запуск при поднятии сетевого интерфейса.
touch /etc/firewall.sh
chmod u+x /etc/firewall.sh
chmod 644 /etc/firewall.sh
nano /etc/firewall.sh

nginx 301 redirect www to non-www

Потребовалось сделать редирект сайта со всеми поддоменами с адреса www.site.ru на site.ru. При этом к сайту привязано порядка 50 доменов 3его уровня. Есть доступ по http и по https, соответственно, нужен 301 редирект с сохранением изначального протокола. Чтобы не писать редирект для каждого отдельного домена, попробуем сделать все одним правилом для nginx. У меня получилось такое рабочее решение. В секций server в настройках хоста добавляем:
# www to no-www 301 redirect http(s)
    if ($host ~* www\.(.*)) {
    set $host_without_www $1;
    rewrite ^(.*)$ $scheme://$host_without_www$1 permanent;
    }

Оптимизация работы web-сервера nginx+php-fpm

 Оптимизация работы web-сервера nginx+php-fpm
Попросили оптимизировать скорость работы сайта на VDS (nginx, php-fpm,mysql). Эту заметку написал больше для себя, оптимизирую работу веб серверов не часто, что-то могу забыть.

Начинаем с самого элементарного, создаем нагрузку на сайт с любого другого компьютера посредством программы siege (50 одновременных подключений):
sudo apt-get install siege
siege -c 50 site.ru
На сервер открываем htop и смотрим нагрузку. Видим, что в основном сервер нагружает php-fpm а также медленно ворочается mysql. Для php-fpm проверяем, что тип пула dynamic, корректируем количество дочерних процессов (pm.max_children) в зависимости от количества памяти, проверяем, что работа идет через сокет (а не через порт) и включаем opcache. В целом этих мер должно быть достаточно. Далее - оптимизация СУБД.