Що вийшло?
День перший
![]() |
| Код Python день перший |
Ось такий день...
Персональний блог на різноманітні теми: від кулінарії до мережевої безпеки.
Є задача підключити nginx як ssl proxy для служб електронної пошти, з перевіркою авторизації у nginx. Використання nginx дозволить використати сучасні ssl сертифікати, у випадку коли поштові сервіси не можуть це зробити за певних умов. Наприклад коли необхідна додаткова перевірка авторизації через сертифікати ssl клієнта.
|
|
Додаткова авторизація через SSL client certificate. |
Для підтримки авторизації через SSL client certificate сторона сервера посилає додатковий запит клієнту на те що очікує від нього особистого сертифікату. Запит описує чи має бути відновіть від клієнта з особистим сертифікатом клієнту обов'язковим чи за бажанням. Надалі клієнт надсилає, а сервер перевіряє отриманий особистий сертифікат клієнту чи був він виданий певним центром сертифікації (CA) та чи він не був відкликаний, або не слив термін придатності. На цьому перевірка закінчена, будь який дійсний сертифікат виданий центром сертифікації (CA) буде прийнятним для сервера.
Стала задача як форсувати отримання свіжої версії файлу playlist .m3u8 для застуванні у HLS (HTTP Live Streaming) медіа плеєру. Свіжу версію мається на увазі те що вона не буде зчитана з кешу браузера у будь-якому випадку незалежно від заголовків expire.
Вирішення задачі це додавати до імені файлу поточну дату у вигляді додаткового аргументу на кшталт: index.m3u8?m=202303191711.
Використовується Web сервер - nginx.
Сформуємо змінну $formatted_date з датою у необхідному форматі. Є вбудована змінна у nginx для дати у форматі ISO8601 $time_iso8601.
Для формування дати у потрібному форматі застосовується послідовність map у контексті http.
![]() |
| map - nginx |
Якщо у Вас є домен в DNS службі https://dns.he.net, то можна оновлювати TXT записи через динамічний ключ, а це надає можливість отримати безкоштовні сертифікати через Let's Encrypt у випадку коли у Вас наприклад поштовий сервер.
Рішення що є pligin до certbot - he.net DNS Authenticator plugin for Certbot потребує повний доступ через login/password до Вашого he.net акаунта, як на мене це жирно :)
Тому було знайдено рішення оновлення через динамічний ключ для оновлення тільки одного TXT запису.
| he.net TXT |
Для отримання ключа його можна згенерувати, наприклад: aJoSWOFyLD1A3iDG
![]() |
| he.net dynamic key |
Буває що віртуальна машина використовує якийсь довготривалий розрахунок. А якщо що ?
То всі результати розрахунку пропали ?
Тому ось простий скрипт що періодично створює знімок віртуальної машини (snapshot) зі станом пам'яті. Також змінює назву збільшуючи її на одиницю.
#!/usr/bin/env bash
PATH=$PATH:/usr/sbin
VM=309
prevsn=$(qm listsnapshot ${VM} | head -n 1 | awk '{print $2}')
if [ "$prevsn" == "current" ];then
snname="a1"
else
snname="a$(( ${prevsn:1} + 1 ))"
fi
echo prev:$prevsn new:${snname}
qm snapshot $VM ${snname} --vmstate true
if [ $? -eq 0 ] && [ "$prevsn" != "current" ];then
echo "all ok with new snapshot: ${snname}, remove prev: $prevsn"
qm delsnapshot $VM $prevsn
fi
Результат:
![]() |
| bash result |
При переносі віртуальних машин з ноду в кластер необхідно мати пустий нод, і номера віртуальних машин що не конфліктують з іншими.
Для вирішення цієї задачі простіше і надійніше використати метод створення резервної копії і потім її відновлення в кластері.
Але я створив малий скрип що допомагає обійтися без цього методу.
Тому цей простий скрип перейменовує гуртом віртуальні машини з номерами 1ХХ на 6ХХ і де дані зберігаються на ZFS диску з назвою 'mdata'.
На сьогодні дуже важливе є питання заощадливого використання заряду наших гаджетів.
Так, деякі матеріали в каналах YouTube можна слухати, а відео ряд не такий вже важливий, тому бажано було б мати можливість слухати з вимкненим економ нашого гаджету.
Але для прослуховування в додатку YouTube в фоні обмежена для власників не Premium підписки.
Тому виявив можливість використання YouTube в браузері Firefox для Android в режимі картинка в картинці.
Для цього необхідно в браузері Firefox для Android відкрити сайт https://youtube.com, перевести перегляд в режим для комп'ютера.
Вибирати необхідно відео в YouTube, вибрати найбільш заощадливий режиму перегляду, з Авто на 144p.
Щойно виявив що Google Web Store, таки опублікував мій плагін для
браузера Chrome у публічний доступ :
Періодичне програмне натискання кнопки HTML
(Periodic software click of HTML button)
Git проєкт:
https://github.com/lexxai/SearchFormButton