В данной статье мы будет переводить сайт с HTTP на HTTPS. Сертификат будем получать через Let's Encrypt.
Let's Encrypt — центр сертификации который выдает бесплатные SSL/TLS сертификаты для сайтов.
Сертификат выдается на 3 месяца, после этого времени его нужно будет автомотически обновить.
Получать сертификат и обновлять будем средствами Сertbot.
Обновляем дерево портов и устанавливаем Сertbot:
root@localhost:/ # cd /usr/ports/security/py-certbot
root@localhost:/usr/ports/security/py-certbot # make install clean
Сertbot может автоматически обновлять записи в nginx и apache, но я буду делать все в ручную.
Проверяем текущие версию:
root@localhost:/ # uname -a
FreeBSD localhost 11.2-RELEASE FreeBSD 11.2-RELEASE #10: Thu Jul 12 01:00:23 MSK 2018 root@localhost:/usr/obj/usr/src/sys/MAIN_KERNEL amd64
После обновления система запустится со стандартном ядром GENERIC. Могут не работать сеть/ssh и так далее, нужно учитывать при удаленном сервере.
Запускаем команду для обновления текущей версии до последней.
root@localhost:/ # freebsd-update fetch install
В ответ было выведено:
WARNING: FreeBSD 11.2-RELEASE HAS PASSED ITS END-OF-LIFE DATE.
Any security issues discovered after Thu Oct 31 04:00:00 MSK 2019 will not have been corrected.
Запускаем обновление до версии FreeBSD 12.1
root@localhost:/ # freebsd-update upgrade -r 12.1-RELEASE
Запускаем команду для обновления текущей версии до последней.
root@localhost:/ # freebsd-update fetch install
Перезагружаем.
root@localhost:/ # shutdown -r now
Проверяем что обновилось. Ядро стало GENERIC. Так же самое у меня перестала работать маршрутизация IPFW + NAT из-за стандартного ядра.
root@localhost:/ # uname -a
FreeBSD localhost 9.1-RELEASE-p22 FreeBSD 9.1-RELEASE-p22 #0: Mon Nov 3 18:22:10 UTC 2014 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64
Далее нужно обновиться до версии FreeBSD 10.1
root@localhost:/ # freebsd-update upgrade -r 10.1-RELEASE
Так как я отказался при установки от документации и игры FreeBSD уточняет.
The following components of FreeBSD do not seem to be installed:
world/doc world/games
Does this look reasonable (y/n)?y
Файлы freebsd, веб-сервера, баз данных и другое необходимо делать резервное копирования.
Все резервирование в freebsd сводится к простому копированию файлов. Можно написать свой скрипт, но я решил использовать готовое решение fsbackup.
Приступим к установки.
Обновляем дерево портов и переходим
cd /usr/ports/sysutils/fsbackup/
Установим make install clean
Я буду делать резервное копирование на FTP сервер.
Давным давно был куплен сервер для сайта в локальной сети. С этих времен я уже привык что у меня есть сервер, так как удобно пользоваться. Потом как то хотел купить маршрутизатор, посмотрел на их цены и производительности и понял что freebsd + NAT лучший маршрутизатор.
Еще получается что у нас есть возможность поднять веб-сервер, ftp сервер, proxy для личного использования.
И вот прошло время сменить сервер, так как есть такие же решение по мощности, но потребляющие много меньше. Потом блок питания стал пробивать на корпус, вентиляторы стали гудеть. Но я ему благодарен он работал отлично, и теперь дальше будет работать но немного в другом направление. Но статья о новом маленьком энергосберегающим сервер.
У моего провайдера есть IPTV по средствам Multicast. Можно использовать конечно маршрутизацию и трансляцию Multicast в нашу локальную сеть. Но это не так просто сделать, плюс к тому же это лишняя нагрузка. Я пошел другим путем, есть серверная программа udpxy. Принцип работы основан на том что она принимает Multicast по протоколу UDP и транслирует его в протокол TCP. Вещание осуществляет по средствам HTTP запросов.
Это удобно когда устройства или программы не умеют работать с мультикастом. Еще мы получим доступ к IPTV с любого адреса интернета, что сможем посмотреть что-нибудь с планшета.
В помощь веб-серверу нужен FTP сервер, я долго смотрел на различные сервера.
Выбор мой остановился на Pure-FTPd, так как понятные и удобный конфигурационный файл, возможность задавать права доступа и директории в MySQL базе, безопасность.
Хотя каждый выбирает что нравится. И так мне нужна возможность изменять по ftp папку /usr/local/www/ и возможность загрузки файлов анонимно в публичную папку.
memcached – это сервис кэширования данных в оперативной памяти. Бывает что такие запросы на сайте вида: «лучшие комментарии за сутки», затратно выполнять при каждой открытие странице. Так же если нужно построить большую выборку данных или обсчитать в PHP, с учетом что эти данные не требуются в реальном времени. Эти запросы нужно кэшировать.
Хотя есть правило при разработки и программированию, что кэш это последние к чему нужно прибегнуть.
Для веб-сервера я использую связку nginx – php. Работает быстро, так как nginx будет раздавать всю статику кроме файлов php. Работать будет с php-fpm (FastCGI Process Manager).
MySQL мы установили раньше:
notanony.ru/post/15/
И так приступим к установки.
Будем устанавливать веб-сервер, в частности MySQL. Nginx и PHP установка
notanony.ru/post/16/ в другой статье. Тут мы рассмотрим особенность установки, настройка конфигурации для лучшей работы на SSD, различная оптимизация.
Теоретически под мои задача запись будет идти не так часто, но все же количество логов, операций записи на диск нужно сократить.
Ну что же, приступим к установке.