Delete unused digests of docker images and save space If you’re using your docker registry to push continuous updates you’ve probably noticed that the disk mount space for the registry is gradually growing. It looks like it’s time to have a registry clean up. Here’s how to do it. First, […]
How to configure docker runner to authorize with private docker registry
If the private image is in a registry which does not require authentication you can just use the registry url in the Docker image field. If your registry requires authentication, it becomes a little more complicated. You will need to set up a script on the agent server which will […]
10 вещей, которые я хотел бы знать перед стартом проекта на Symfony
Прошло уже около двух лет с тех пор, как мы начали переписывать наш проект на Symfony2. Это было интересное время — работа с Symfony2+Doctrine2 была настоящим удовольствием после Битрикса. Конечно, оглядываясь назад, я понимаю, как не надо было делать, и сегодня делюсь этим с вами. 1. Не добавляйте файл composer.lock […]
Прозрачное кэширование в nginx для всех и каждого
Представим, что у нас есть сайт, на который регулярно дают ссылки с хабра.Нам нужно подготовить его к резким всплескам посещаемости. Как это сделать?С версии 0.8.46 в nginx появились опции, позволяющие легко и просто настроить прозрачное кэширование для анонимных пользователей.Для работы этой схемы от сайта требуется очень мало: достаточно лишь не […]
Pramatic Uses of MySQL BIT Data Type
ummary: in this tutorial, you will learn about MySQL BIT data type and how to use it to store BIT data in a table. Introduction to MySQL BIT data type The BIT type that allows you to store bit values. Here is the syntax: BIT(n) The BIT(n) can store up […]
Nginx cache: всё новое — хорошо забытое старое
В жизни каждого проекта настает время, когда сервер перестает отвечать требованиям SLA и буквально начинает захлебываться количеством пришедшего трафика. После чего начинается долгий процесс поиска узких мест, тяжелых запросов, неправильно созданных индексов, не кэшированных данных, либо наоборот, слишком часто обновляемых данных в кэше и других темных сторон проекта.Но что делать, […]
Настройка кеширования в nginx
В nginx начаная с версии 0.7.44 появилась возможность кешировать отдаваемые страницы, что может увеличить работы сайта в тысячу раз. Рассмотрим практический пример настройки кеширования. За основу будет взят сайт контент которого не меняется в зависимости от пользователя (авторизован или гость) и нет активно меняющихся данных (например голосований). Это важно, т.к. […]
Nginx Reverse Proxy with Caching
nginx.conf http { proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=STATIC:10m inactive=24h max_size=1g; server { location / { proxy_pass http://1.2.3.4; proxy_set_header Host $host; proxy_buffering on; proxy_cache STATIC; proxy_cache_valid 200 1d; proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504; } } }
Switch by class (instanceof) in PHP
The following is more correct: $class = get_class($objectToTest); switch($class) { case TreeRequest::class: echo «tree request»; break; case GroundRequest::class: echo «ground request»; break; } This way namespaces are properly compared (you don’t have to type them out) and if anything changes such as the namespace or class name you’ll get a […]
Восемь причин изучить PHPDoc
Часто встречаю вопрос о том, что же это за странные блоки комментариев постоянно генерируются в представлениях: <?php <?php /* @var $this yii\web\View */ /* @var $searchModel \app\models\search\UserSearch */ /* @var $dataProvider yii\data\ActiveDataProvider */ ?> в ActiveRecord-классах: /** * This is the model class for table «{{%user}}». * * @property integer […]