День Nginx
Как nginx обрабатывает запросы
https://nginx.org/ru/docs/http/request_processing.html
Оптимизация Nginx: параметры sendfile, tcp_nodelay и tcp_nopush
https://blog.debian-help.ru/2014/12/optimizaciya-nginx-parametri-sendfile-tcpnodelay-tcpnopush
NGINX LOCATION
https://rav.pw/nginx-location/
https://nginx.org/ru/docs/http/ngx_http_core_module.html#location
Как nginx обрабатывает запросы
https://nginx.org/ru/docs/http/request_processing.html
Оптимизация Nginx: параметры sendfile, tcp_nodelay и tcp_nopush
https://blog.debian-help.ru/2014/12/optimizaciya-nginx-parametri-sendfile-tcpnodelay-tcpnopush
NGINX LOCATION
https://rav.pw/nginx-location/
https://nginx.org/ru/docs/http/ngx_http_core_module.html#location
blog.debian-help.ru
Оптимизация Nginx: параметры sendfile, tcp_nodelay и tcp_nopush - Debian help
Оптимизация производительности Nginx. Информация о том как работают параметры sendfile, tcp_nodelay и tcp_nopush. Их взаимодействие.
Условия акции: 21—26 апреля, скидка 40% на все бумажные книги по купону — Бумажная книга, скидка 50% на все электронные книги по купону — Электронная книгаhttps://habr.com/ru/company/piter/blog/498278/
Хабр
Издательство Питер. Весенняя распродажа
Привет, Хаброжители! На этой неделе у нас большие скидки. Подробности внутри. В хронологическом порядке представлены книги, вызвавшие интерес читателей за последние 3 мес. Отдельные...
Новый гитлаб подъехал
https://about.gitlab.com/releases/2020/04/22/gitlab-12-10-released/
https://about.gitlab.com/releases/2020/04/22/gitlab-12-10-released/
GitLab
GitLab 12.10 released with Requirements Management and Autoscaling CI on AWS Fargate
GitLab 12.10 released with Requirements Management, Autoscaling CI on AWS Fargate, Issue and Epic health status, and much more!
Если планируете переводить плейбуки Ansible с версии 2.7 на версию 2.8, то эти ссылки могут быть полезными:
https://docs.ansible.com/ansible/latest/porting_guides/porting_guide_2.8.html#gathering-facts
https://docs.ansible.com/ansible/latest/porting_guides/porting_guide_2.8.html#bare-variables-in-conditionals
https://medium.com/@maaaato/i-tried-ansible-lint-quickly-74236cc9ed9e
https://docs.ansible.com/ansible/latest/porting_guides/porting_guide_2.8.html#gathering-facts
https://docs.ansible.com/ansible/latest/porting_guides/porting_guide_2.8.html#bare-variables-in-conditionals
https://medium.com/@maaaato/i-tried-ansible-lint-quickly-74236cc9ed9e
Medium
I tried Ansible-lint quickly
I know Ansible-lint recently. I tried it right away and I think want to write a blog.Ansible-lint is a sentence structure check tool. By…
Get the full Visual Studio Code experience without leaving GitHub
https://github.com/features/codespaces
https://github.com/features/codespaces
GitHub
GitHub Codespaces
GitHub Codespaces gets you up and coding faster with fully configured, secure cloud development environments native to GitHub.
При обновлении Gitlab узнал, что существуют специальные сервисные учетные записи:
* Ghost User - служит для отображения комментариев и issues для удаленных пользователей (https://gitlab.com/gitlab-org/gitlab-foss/-/issues/33020)
* Gitlab Support Bot - создает issues (https://docs.gitlab.com/ee/user/project/service_desk.html#support-bot-user)
* Gitlab Migration Bot - не нашел никакой информации. Возможно, служит для проведения миграций в БД или иных сущностей
P.S. Подобные учетные записи не учитываются в подсчёте лицензий.
* Ghost User - служит для отображения комментариев и issues для удаленных пользователей (https://gitlab.com/gitlab-org/gitlab-foss/-/issues/33020)
* Gitlab Support Bot - создает issues (https://docs.gitlab.com/ee/user/project/service_desk.html#support-bot-user)
* Gitlab Migration Bot - не нашел никакой информации. Возможно, служит для проведения миграций в БД или иных сущностей
P.S. Подобные учетные записи не учитываются в подсчёте лицензий.
GitLab
Can't delete 'Ghost User' (#33020) · Issues · GitLab.org / GitLab FOSS · GitLab
I'm not sure how, but I can't remove Ghost User, do you know what's wrong ? Also I don't know how, but this user is created automatically.
Для смены таймзоны внутри Docker-контейнера на базе Alpine нужно установить пакет
tzdata командой apk add tzdata и установить переменную окружения TZ (например, TZ=Europe/Moscow)В версии 2,221 Jenkins добавили полезный функционал для очистки старых билдов и артефактов. Опцию можно настроить глобально для всех проектов или для каждого проекта по отдельности. Можно указать сколько дней нужно хранить билды/артефакты и максимальное число билдов/артифактов.
https://support.cloudbees.com/hc/en-us/articles/215549798-Best-Strategy-for-Disk-Space-Management-Clean-Up-Old-Builds
https://support.cloudbees.com/hc/en-us/articles/215549798-Best-Strategy-for-Disk-Space-Management-Clean-Up-Old-Builds
Делаем свой сайт безопаснее.
Есть вот такой ресурс https://www.ssllabs.com, который проверяет безопасность вашего сайта (актуальность шифров, алгоритмов, протоколов и прочее).
После сканирования ресурс дает рейтинг вашему сайту в плане защиты. Ниже краткий пересказ того, как я получал рейтинг A+ вместо B на примере веб-сервера nginx.
* Отключаем поддержку старых версий протокола TLS (а именно, версий 1.0 и 1.1), оставляем 1.2 и 1.3 - устанавливается директивой
* Оставляем набор актуальных шифров (отключаем недействительные, небезопасные, малоиспользуемые и уязвимые шифры) - устанавливается директивой
* Даем возможность веб-серверу выбирать шифр, а не браузеру - устанавливается директивой
https://github.com/ssllabs/research/wiki/SSL-and-TLS-Deployment-Best-Practices
Есть вот такой ресурс https://www.ssllabs.com, который проверяет безопасность вашего сайта (актуальность шифров, алгоритмов, протоколов и прочее).
После сканирования ресурс дает рейтинг вашему сайту в плане защиты. Ниже краткий пересказ того, как я получал рейтинг A+ вместо B на примере веб-сервера nginx.
* Отключаем поддержку старых версий протокола TLS (а именно, версий 1.0 и 1.1), оставляем 1.2 и 1.3 - устанавливается директивой
ssl_protocolsssl_protocols TLSv1.2 TLSv1.3;
* Оставляем набор актуальных шифров (отключаем недействительные, небезопасные, малоиспользуемые и уязвимые шифры) - устанавливается директивой
ssl_ciphersssl_ciphers 'kEECDH+ECDSA+AES128 kEECDH+ECDSA+AES256 kEECDH+AES128 kEECDH+AES256 kEDH+AES128 kEDH+AES256 DES-CBC3-SHA +SHA !aNULL !eNULL !LOW !kECDH !DSS !MD5 !RC4 !EXP !PSK !SRP !CAMELLIA !SEED';
* Даем возможность веб-серверу выбирать шифр, а не браузеру - устанавливается директивой
ssl_prefer_server_ciphersssl_prefer_server_ciphers on;
https://github.com/ssllabs/research/wiki/SSL-and-TLS-Deployment-Best-Practices
Ssllabs
Qualys SSL Labs
Bringing you the best SSL/TLS and PKI testing tools and documentation.
Замечательная фраза:
https://blog.zopyx.com/andreas-jung/contents/on-docker-security-docker-group-considered-harmful
Building a secure IT system on human trust is fundamentally brokenhttps://blog.zopyx.com/andreas-jung/contents/on-docker-security-docker-group-considered-harmful
Zopyx
On Docker security: 'docker' group considered harmful - Andreas Jung
The company for Zope, Plone, Python, MongoDB and Electronic Publishing
Remove Untagged Images From Docker
https://jimhoskins.com/2013/07/27/remove-untagged-docker-images.html
https://jimhoskins.com/2013/07/27/remove-untagged-docker-images.html
Microsoft выкатил утилиту Super Linter для проверки кода на следующих языках:
Пока все прикручивается только к Github Actions, но есть возможность локального запуска в Docker.
Ansible (ansible-lint)https://habr.com/ru/post/507528/
CSS (stylelint)
CoffeeScriptc(offeelint)
Dockerfile (dockerfilelint)
Golang (golangci-lint)
JavaScript (eslint standard js)
JSON (jsonlint)
Markdown (markdownlint
Perl (perl)
Python3 (pylint)
Ruby (RuboCop)
Shell (Shellcheck)
Terraform (tflint)
TypeScript (eslint standard js)
XML (LibXML)
YAML (YamlLint)
ENV (dotenv-linter)
Пока все прикручивается только к Github Actions, но есть возможность локального запуска в Docker.
Хабр
Линтер на все случаи жизни — GitHub Super Linter
Команда DevOps инженеров из GitHub поделились своим универсальным решением для проверки качества кода. С ним можно настроить линтер для 17 языков всего в 11 стр...
Интересная задумка - строить схему взаимодействия между сервисами, а на выходе получать готовый docker-compose файл.
https://nuxx.io/
https://nuxx.io/
nuxx.io
Visual Docker Compositions for faster development. Discover, leverage, launch community recipes.
Если вы используется Ansible в связке с Python2 и Jinja, то при запуске (случайно или специально) на Python3 можно получить следующую ошибку:
В Python2 словари используют методы
https://docs.ansible.com/ansible/latest/user_guide/playbooks_python_version.html#dict-iteritems
P.S. И не стоит забывать, что Python2 уже deprecated и выпилен с большинства апстрим дистрибутивов.
fatal: [host-01.test.ru]: FAILED! => {"changed": false, "msg": "AnsibleUndefinedVariable: 'dict object' has no attribute 'iteritems'"}В Python2 словари используют методы
iterkeys(), itervalues(), iteritems() , в Python3 эти методы удалены. Следует использовать методы dict.keys(), dict.values(), dict.items() для обеспечения совместимости между Python2 и Python3.https://docs.ansible.com/ansible/latest/user_guide/playbooks_python_version.html#dict-iteritems
P.S. И не стоит забывать, что Python2 уже deprecated и выпилен с большинства апстрим дистрибутивов.
https://github.com/zricethezav/gitleaks
Небольшая утилита для сканирования репозиториев на предмет секретов, таких как пароли, ключи API и токены .
Утилита либо клонирует репозиторий по ссылке, либо указывается путь на файловой системе.
Заявлена поддержка Github и Gitlab API, которая позволяет сканировать целые организации, пользователь и запросы на слияния (честно говоря, в документации не увидел такую возможность)
Пример запуска:
Помимо токена можно указать логин+пароль или ssh-ключ.
Вывод выглядит следующим образом (пример):
Если у вас Gitlab, то можно через API получить URL всех репозиториев, а потом скриптом обработать все.
Через API список репозиториев можно получить вот так (требуется наличие утилиты jq):
Также нужно учитывать ограничение на выдачу количества записей в API
https://docs.gitlab.com/ee/api/projects.html#pagination-limits
Небольшая утилита для сканирования репозиториев на предмет секретов, таких как пароли, ключи API и токены .
Утилита либо клонирует репозиторий по ссылке, либо указывается путь на файловой системе.
Заявлена поддержка Github и Gitlab API, которая позволяет сканировать целые организации, пользователь и запросы на слияния (честно говоря, в документации не увидел такую возможность)
Пример запуска:
docker run docker.io/zricethezav/gitleaks:latest gitleaks --repo=https://gitlab.example.com/repo_name --access-token=your_token --verbose --pretty
Помимо токена можно указать логин+пароль или ssh-ключ.
Вывод выглядит следующим образом (пример):
{
"line": "-----BEGIN RSA PRIVATE KEY-----",
"offender": "-----BEGIN RSA PRIVATE KEY-----",
"commit": "1111111111111111111111111111111111111111",
"repo": "test_repo",
"rule": "Asymmetric Private Key",
"commitMessage": "Add private key",
"author": "Test User",
"email": "[email protected]",
"file": "id_rsa",
"date": "2016-10-20T14:37:47Z",
"tags": "key, AsymmetricPrivateKey"
}Если у вас Gitlab, то можно через API получить URL всех репозиториев, а потом скриптом обработать все.
Через API список репозиториев можно получить вот так (требуется наличие утилиты jq):
curl -s --header "PRIVATE-TOKEN: your_token" "https://gitlab.example.com/api/v4/projects?per_page=100&page=1" | jq -r '.[]|.web_url'
Также нужно учитывать ограничение на выдачу количества записей в API
https://docs.gitlab.com/ee/api/projects.html#pagination-limits
GitHub
GitHub - gitleaks/gitleaks: Find secrets with Gitleaks 🔑
Find secrets with Gitleaks 🔑. Contribute to gitleaks/gitleaks development by creating an account on GitHub.
Смотрел на днях видео, где рекомендовали в случае DDoS-атак отдавать 444 код ответа. Решил узнать, что это за код. И, внезапно, выяснилось, что браузеры немного по-другому взаимодействуют с ресурсом, который отдаем подобный код ответа
https://habr.com/ru/post/415565/
https://habr.com/ru/post/415565/
Хабр
Почему (сегодня) return 444 не всегда полезен
В web-сервере Nginx есть замечательный код ответа 444, который «закрывает» соединение без отправки данных. Данный функционал весьма полезен при фильтрации парази...
Полезное решение для сервисов, которые торчат наружу)
https://www.foaas.com/
https://www.foaas.com/
Foaas
Home - Foaas
RESTful API (Representational State Transfer) has become a standard in the web development world due to its simplicity, scalability and flexibility.