Category: marvin

Решението на един стар проблем

На marvin живеят няколко WordPress-а, но и с него влача няколко мои стари проекти. Един от тях скоро ще стане на 9 години. И понеже живеят на Joomla 1.5, която практически е невъзможно (варианти има, но безплатните не работят, а за платени не смятам, че искам) да се ъпгрейдне към latest. За това nginx-а ми работи с php-fpm, който търкаля две версии на PHP – 5.х и 7.х. И понеже първата е крайно архаична взех решението старите сайтове да ги разкарам напълно. Така или иначе нямам никаква полза от тях.

И вчера вдигнах още един VPS и започнах да конфигурирам наново nginx/php-fpm/etc. Оказа се, че съм позабравил част от configuration flow-а и седнах да помисля какво и как да направя. Най-накрая стигнах до решението, че вместо да си блъскам главата ще инсталирам един стар LTS на Ubuntu в който се поддържа PHP 5.x и всичко тръгна от раз.

Тенденцията ще е да разкарам всичките си клиенти (в големи кавички, таксите им са малко над цените на домейна) и да мина най-накрая на latest and greatest без да се занимавам с излишни глупости.

 

И така на marvin ще се освободи още малко място така, че ако някой (с предимство са студенти/ученици/преподаватели) има нужда да хостне нещо може да се възползва напълно безплатно.

Free backup script

Баси тъпото заглавие.

Anyway – днес fork-нах един проект, който използвам от извесно време с разни адаптации за marvin и реших да го публикувам.
github проекта за сега носи работното име Full Web Server Backup, а основния проект можете да намерите тук.

Основните разлики между проектите са:

  • Основния проект има Amazon S3 sync, аз го махнах, защото използвам услугите на pCloud;
  • В моя има архивиране на /etc, почистени са малко неразбории.

За в бъдеще смятам да добавя:

  • Избор на compression level;
  • Изнасяне на mySQL user/pass в ~/.my.cnf
  • Избор на специфични директории в /etc, които да архивираме или exclude-нем;
  • cronjob;
  • Архивиране на /home директорията на определен потребител (ако имаме права за това).

Ако имате друга идея с радост ще я прегледам. marvin си пази бекъпите с този скрипт и за момента работи безпроблемно.

Когато ти изтекат сертификатите на блога…

Както може би забелязахте последните 2 дни блога ми не се отваряше и причините бяха две:

  • Let’s Encrypt renewal-а не беше минал тримесечния си ъпдейт на сертификатите;
  • Понеже използвам HSTS нямаше и опция да видите блога нищо, че е с невалиден сертификат.

И това естествено по празниците, когато нямах достъп до компютър :)

Ето и какви бяха причините за това, че на nedko.info не минаха сертификатите, но на останалите 7-8 сайта, които хоствам минаха без проблеми:

  1. При опит за certificate renew  получавах следната грешка:
Failed authorization procedure. www.nedko.info (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://www.nedko.info/.well-known/acme-challenge/PdzPmGSbFd1XOOqa0LshcRGxqUАGHАUj3qМNamp1-Yw: "<!DOCTYPE html>
<html lang="en-GB">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial"

IMPORTANT NOTES:
 - The following errors were reported by the server:

Domain: www.nedko.info
 Type: unauthorized
 Detail: Invalid response from http://www.nedko.info/.well-known
 /acme-challenge/PdzPmGSbFd1XOOqa0LshcRGxqUАGHАUj3qМNamp1-Yw:
 "<!DOCTYPE html>
 <html lang="en-GB">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial"
 To fix these errors, please make sure that your domain name was
 entered correctly and the DNS A record(s) for that domain
 contain(s) the right IP address.

 

Проблема е, че при опит за достъп по http (близко до ума, но на мен ми отне време да се досетя, че Let’s Encrypt callback-а е по http, а не по https) при misconfiguration горния линк http://www.nedko.info/.well-known
/acme-challenge/PdzPmGSbFd1XOOqa0LshcRGxqUАGHАUj3qМNamp1-Yw пренасочваше към друг от моите домейни.

 

2. Започнах да преглеждам къде ми е проблема с това пренасочване и реших да изключа напълно port 80 поддръжката (http) макар и да имам redirect 301 в случай, че имам request по http.
Решението ми беше да спра изцяло поддръжката на http през vhosts. Става съвсем лесно с коментар или изтриване на удебеления ред:

#listen 80;
listen 443 ssl;

След тази промяна и рестартиране на nginx (service nginx restart) успях да стартирам процеса по преиздаването на сертификата успешно със следните редове:

letsencrypt certonly -a webroot --webroot-path=/var/www/nedko.info/ -d nedko.info -d www.nedko.info

където пътя до сайта е в директория /var/www/nedko.info/

 

Ако имате проблеми с намирането на директорията /.well-known/acme-challenge/ можете да я създадете наново като:

  • Проверите дали директорията съществува (под Линукс точката пред директория или файл се счита за скрит файл/директория) с
ls -lah /var/www/nedko.info/

Ако не съществува можете да я създадете със следната команда и дадете съответните правомощия:

mkdir /var/www/nedko.info/.well-known/acme-challenge/ && chmod 755 /var/www/nedko.info/.well-known/acme-challenge/

И изпълянвате по-горната команда за renew на сертификатите.
Ако не стане пишете в коментарите и ще го гледаме заедно.

16.03.2017

sysДнес е ден за regression testing в офиса. Напомня ми защо не обичам i-shits. Знаете ли, че няма никъде в измисленото меню на iPhone (тествах върху 5 и 6) модела на телефона? Тоест никъде няма да видите iPhone 6S да кажем, а само неговия идентификатор (например A1549). Грр!
Иначе сутринта ходих да карам. НАЙ-НАКРАЯ отлепих в 6 и малко, подготвих се и завъртях до Аладжата, през Виница, после Морската и обратно в квартирата. Счупих си рекорта за скорост – 71.5 км/ч. Понеже GoPro-то е още в мен направих и няколко снимки и видео, но тях ще ги сложа в отделен пост.
ОЩЕ не съм свършил с пътеписа за изкачването ми на връх Шипка. Все не остава време тия дни…
Друго интересно е, че благодарение на Виктор се сдобих с един много приятен workstation – Lenovo ThinkStation E31 със следните характеристики:

  • Процесор Intel Xeon E3-1225V2 (8M Cache, 3.20GHz)
  • Памет 16GB ( 4x4GB) PC3-12800 160 0MHz UDIMM DDR3
  • Твърд диск – 2х 500GB SATA – 7200 rpm, 6 Gb/s, 3.5″ в RAID 0

Скоро ще напиша едно обстойно ревю + тестове, че ми е адски интересно да видя каква е практическата разлика между RAID 0 и RAID 1 и производителността на този четириглав змей с 8 мб кеш.

И последно – днес подкарах HTTP/2 и HSTS на marvin. Ще опиша в статия как го направих (hint – супер лесно е).

 

Помните като ви казах, че ще е за последно, нали? Еми не е. Това рядко администраторско портно нямаше как да не го споделя с вас:

100% SSL поддържка на marvin

Днес най-накрая успях да подкарам 100% SSL support на всичките ми хостнати проекти с Let’s Encrypt.

Без проблеми естествено не можеше, но бяха решени с касапския метод:

[code]aptitude remove letsencrypt[/code]

[code]aptitude purge[/code]

[code]aptitude install letsencrypt[/code]

Заедно с това сложих и letsencrypt renew, защото сертификатите са валидни само три месеца. Сега ще чакам да видим след три месеца дали всичко ще стане автоматично :)