Category Archives: HTTP/S servers

Настройка, администрирвание HTTP/S серверов и сервлетов

Nexus: установка, запуск, деплой в репозиторий + NGINX и SSL

27 September 2018
 

 У Android-команды поломался “деплой” через отправку письма с вложением на Gmail (было сделано ещё до меня), и появилась необходимость быстренько “накостылить” репозиторий. Планировался он давно, но сейчас будет без всякой автоматизации – просто руками поднять, запустить, что бы они могли деплоить. Использовать будем free-версию Sonatype Nexus, запускать будем на AWS EC2, из Docker-образа, бекенд будет… Read More »

NGINX: gzip и ETag weak validation

20 September 2018
 

  ETag Собственно сам ETag является идентификатором ресурса, запрошенного клиентом (браузером): если изменений нет, то etag не меняется, если изменения были – изменится и его etag. См. тут>>>, тут>>> и тут>>>. Пример его работы – проверяем URL: Теперь добавляем –header If-None-Match, в котором передаём значение из полученного ETag – и NGINX вернёт нам код 304 Not Modified: В… Read More »

AWS: Application Load Balancer – HTTP => HTTPS и host-header редиректы

30 August 2018
 

 Имеется Application Load Balancer, за которым находятся три хоста: два фронтенда, и один master. Задачи следующие: добавить редиректы HTTP => HTTPS добавить редиректы доменов dev.admin.dme.example.com на master-хост, а остальных – на frontend-хосты добавить редиректы www <=> non-www Редирект HTTP на HTTPS Тут столкнулся с очередным “подарком” от AWS CloudFormation: After checking our internal information, the newly… Read More »

AWS: миграция RTFM 3.0 (final) – CloudFormation и Ansible роли

25 August 2018
 

 Прошёл почти год, как я начал миграцию v2, закончил на посте Ansible: миграция RTFM 2.11 – хост Services – установка PHP, PHP-FPM. Основной её идеей на тот момент было максимально использовать возможности AWS и Ansible – чисто из интереса и для практики, т.к. на предыдущем месте работы её было совсем мало (там в основном был Azure… Read More »

AWS: 502 ошибка на Application Load balancer

10 August 2018
 

 Имеется ALB, на который постоянно срабатывает Alertmanager с ошибкой 502: В CloudWatch видно, что ошибка возникает спорадически, и только один раз: При этом в логах NGINX никаких ошибок нет Первым делом – включаем логи ALB: Не то что бы они чем-то реально помогли – но по крайне мере теперь можно увидеть ошибку “вживую” : 52.***.***.142… Read More »

Prometheus: Alertmanager и blackbox-exporter – проверка срока действия SSL и нотификация в Slack

27 July 2018
 

 Основная задача – проверять SSL-сертификаты и уведомлять о том, что срок действия сертификата завершается. Запуск blackbox-exporter Все сервисы мониторинг запускаются из Compose-файла, который деплоится на хост мониторинга из Ansible-шаблона roles/monitoring/templates/prometheus-compose.yml.j2. Добавляем туда ещё один контейнер: … blackbox-exporter: image: prom/blackbox-exporter command: ‘–config.file=/config/blackbox.yml’ # for debug #command: ‘–config.file=/config/blackbox.yml –log.level=debug’ networks: – prometheus ports: – 9115:9115 volumes: -… Read More »

Prometheus: nginx_exporter и сбор метрик с NGINX

19 July 2018
 

 Имеется два експортёра для NGINX – discordianfish/nginx_exporter и hnlq715/nginx-vts-exporter. Второй предоставляет больше возможностей, но мне сейчас нужны самые базовые, поэтому использую discordianfish/nginx_exporter. NGINX status Сначала – добавим /nginx_status в NGINX. Проверяем – собран ли NGINX со статус-модулем: Я добавил отдельный конфиг /etc/nginx/conf.d/status.conf с default_server, который принимает запросы на статус: server {     charset utf-8;     listen 80 default_server;     server_name _;     location /nginx_status {         stub_status on;         access_log off;         allow 127.0.0.1;         deny all;… Read More »

Ansible: проверить конфигурацию NGINX перед рестартом

13 July 2018
 

 Имеется роль nginx, в которой выполняется его настройка и копирование файлов. Последней задачей роли выполняется nginx restart. Проблема заключается в том, что попытка перезапуска NGINX выполняется в любом случае, и если в файле шаблона виртуалхоста есть ошибка – то NGINX не запустится. Что бы выполнить проверку – nginx -t – добавляем задачу с вызовом модуля… Read More »

NGINX: реальный IP в логах при работе за AWS Load Balancer

9 July 2018
 

 Есть NGINX, который работает за AWS Application Load Balancer-ом (ALB). Проблема заключается в том, что в логах NGINX пишется IP самого ALB, а не клиента: 10.0.2.26 – – [06/Jul/2018:10:30:50 +0300] “GET /debug/ HTTP/1.1” 404 133 “-” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36” Что бы исправить это – добавляем… Read More »

Jenkins: It appears that your reverse proxy set up is broken / Есть подозрение, что настройки вашего обратного прокси некорректны.

6 July 2018
 

 Перед Jenkins запущен NGINX + SSL. После запуска – Jenkins сообщает, что “Есть подозрение, что настройки вашего обратного прокси некорректны.“: Описание ошибки есть на Jenkins Wiki. Настройки виртуалхоста сейчас выглядят так: upstream jenkins { server 127.0.0.1:8080; } … server { listen 443 ssl; server_name ci.domain.world; … location / { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP… Read More »