Архив метки: NGINX

Kubernetes: NGINX/PHP-FPM graceful shutdown – избавляемся от 502 ошибок

24 февраля 2021
 

 Имеется PHP-приложение, работает в Kubernetes в подах с двумя контейнерами – NGINX и PHP-FPM. Проблема: во время скейлинга приложения начинают проскакивать 502 ошибки. Т.е. при остановке подов – некорректно отрабатывает завершение подключений. Рассмотрим процесс остановки подов вообще, и особенности NGINX и PHP-FPM в частности. Тестировать будем приложение в AWS Elastic Kubernetes Service с помощью Yandex.Tank.… Читать далее »

Linux: настройка LEMP – NGINX, PHP, MySQL, SSL, мониторинг, логи, и миграция RTFM

5 ноября 2020
 

 Собрался наконец-то перенести RTFM на Debian 10, решил делать без автоматизации – будем поднимать стандартный LEMP для хостинга WordPress руками. Что-то похожее последний раз писалось в 2016 – Debian: установка LEMP — NGINX + PHP-FPM + MariaDB, в этот раз получился более полный обзор процесса. Также, когда-то делал автоматизацию для настройки сервера под RTFM, но последний… Читать далее »

Nextcloud: запуск в Docker Compose на Debian с SSL от Let’s Encrypt

27 ноября 2019
 

 Недавно потестировал Nexcloud вообще, см. NextCloud: установка сервера на Debian с NGINX и PHP-FPM, и клиента на Arch Linux – в целом понравилось, работает – можно попробовать мигрировать с Dropbox на него. Сегодня запустим Nextcloud полностью в Docker, на сервере с Debian 10 в Digital Ocean. К серверу подключён отдельный диск, на котором будут все… Читать далее »

HTTP: редиректы, POST и GET запросы, и “потерянные” данные

23 ноября 2019
 

 Имеется приложение, которое должно принимать данные через POST-запросы от клиентов. Перед этим приложением имеется некий прокси, не важно какой – AWS Application Load Balancer, NGINX или любой другой. Мы изначально столкнулись с проблемой на AWS ALB, потом я начал тестить на NGINX, что бы искючить влияение самого AWS-сервиса – воспроизводится везде, т.к. не зависит от… Читать далее »

NGINX: limit_req – ограничение количества запросов

9 августа 2019
 

 Задача – установить лимит количества запросов с одного IP: добавить rate limiter на URI /user/oauth/refresh_token число запросов – 5 в минуту с одного IP если запросов больше – возвращаем 429 Too Many Requests Используем NGINX и его модуль ngx_http_limit_req_module. limit_req_zone Для работы “лимитера” – следует создать зону, в которой будут хранится данные (а именно –… Читать далее »

NGINX: мульти-бранч деплой приложения с использованием NGINX map и HTTP Headers

26 июня 2019
 

 Имеется стандартный LEMP – NGINX, PHP-FPM. Приложение – Yii-фреймворк, который деплоится из Jenkins Ansible-ролью с помощью модуля synchronize на хосты в каталог /data/projects/prjectname/frontend/web, который является root в конфиге виртуалхоста NGINX. Задача: создать возможность деплоя из Jenkins приложения из разных бранчей – на хосте одновременно должны быть задеплоены разные версии приложения, доступ к которым будет определяться… Читать далее »

Bitwarden: менеджер паролей организации – установка self-hosted версии на AWS EC2

1 мая 2019
 

 Мы рассматриваем Bitwarden как менеджер паролей для проекта, основная цель которого – разделение доступа к различным секретам по ролям и/или ACL. Т.е. Pass и/или KeePass – это хорошо для одного пользователя, но у них нет главного – нормального веб-интерфейса, и разделения доступа к секретам для пользователей, а всякие 1Password/LastPass не имеют возможности установки на свой… Читать далее »

JetBrains Upsource: установка и запуск на Linux с NGINX и SSL

2 апреля 2019
 

 Upsource – система от JetBrains для код ревью, который через плагин интегрируется во все IDE от JetBrains. Представляет собой Java-приложение с Apache Cassandra в роли локального хранилища данных и индексов. Минимальные требования к машине, на которой будет запускаться – 8 ГБ памяти, что, впрочем, не удивительно. До 10-ти пользователей – бесплатна. В этом посте –… Читать далее »

TestRail: QA Test Case Management система – установка на Linux

22 марта 2019
 

 TestRail – Test Case Management Software for QA and Development Teams. Собственно – этого достаточно для описания) Ниже – описание процесса его установки на Debian с NGINX, Let’s Encrypt, PHP-FPM, MariaDB и Exim. Домашняя страница проекта – www.gurock.com/testrail Документация по установке – тут>>>. Устанавливать будем на AWS EC2. LEMP и SSL Логинимся на сервер: Обновляем… Читать далее »

NGINX: access лог – логгирование всех запросов, кроме 200

19 марта 2019
 

 Задача – логгировать все запросы, кроме 200 ответов. Подход с map можно использовать для совершенно разных вещей. Например – задавать условия по наличию заголовка, и потом перенаправлять на различные location – попозже, наверно, добавлю такой пример. Сейчас нас интересуют две возможности NGINX – “условное логгирование” для выбора условий, при которых будем заносить  события в журнал,… Читать далее »