Веб-сервер на Raspberry Pi
Чтобы выложить информацию в открытый доступ, необязательно покупать аккаунт у
А если мы хотим держать сайт полностью под своим контролем, то можем разместить веб-сервер на домашнем компьютере, одноплатнике Raspberry Pi или даже на мобильном телефоне. Главное, чтобы устройство всё время было в онлайне.
Веб-сервер на домашнем компьютере
Домашний сервер в винтажном корпусе, источник
Старому компьютеру всегда можно найти применение: он может работать как торрент-клиент и медиасервер (раздавая видео через Plex на все телевизоры, ноутбуки и смартфоны), как файловое хранилище, архив бэкапов, а также как веб-сервер. Нет ничего проще.
Конечно, для стандартного программного стека лучше установить Linux, но и в Windows нет ничего зазорного. По крайней мере, 29,2% серверов в интернете работает под Windows, так что не обязательно менять операционную систему, если на компьютере изначально стояла она, тем более если вам привычно работать с такими инструментами, как ASP.NET и C.
Для простоты можно сразу установить весь комплект программ. Выбираем один из стеков AMP (Apache, MySQL/MariaDB, Perl/PHP/Python) под любую платформу: Windows, macOS, Linux, BSD. Например, комплект WampServer под Windows.
WampServer — это платформа для веб-разработки под Windows для динамических веб-приложений с помощью сервера Apache2, интерпретатора скриптов PHP и базы данных MySQL. В него также входит веб-приложение PHPMyAdmin для простой обработки баз данных.
Устанавливаем софт, получаем у провайдера внешний IP-адрес, прописываем в конфигурации доменное имя, открываем в маршрутизаторе порты 80, 3306 (MySQL), 21 (FTP), 22(SSH) или меняем их на нестандартные для уменьшения мусорного трафика от ботов-сканеров — и всё должно работать.
Подробнее см. статью «Подкроватный хостинг: жуткая практика домашних хостингов», а также большой список программного обеспечения, которое можно развернуть на собственном
Хостинг на Raspberry Pi
Алгоритм понятен: нужно поднять веб-сервер на Raspberry Pi и подключить его к сети. Это не какая-то экзотика, а вполне штатное использование «малинки». На официальном сайте даже есть инструкции по установке Apache и Nginx.
Как вариант, веб-сервер можно поднять прямо на маршрутизаторе (с прошивкой OpenWRT).
После установки Nginx проверяем доступность сайта на адресе http://localhost/
на самом Pi или по IP-адресу устройства внутри сети, например, http://192.168.1.10
. Узнать свой внутренний IP-адрес можно командой hostname -I
.
Веб-страницы по умолчанию хранятся в директории /var/www/html
. Заходим туда и размещаем что угодно, заменив стандартные страницы. Адрес страницы по умолчанию прописывается в /etc/nginx/sites-available
.
Кроме Nginx, для более функционального сайта можно установить PHP:
sudo apt install php-fpm
Далее в /etc/nginx/sites-available
находим строчку index index.html index.htm;
и добавляем в середину index.php
, а в середине конфигурационного файла раскомменчиваем следующие строки:
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
После этой процедуры перезагружаем конфигурационный файл.
Вообще, Raspberry Pi можно использовать для разных полезных DIY-проектов. Например, сделать настенный календарь, превратить USB-принтер в беспроводной принтер, установить собственный VPN-сервер и многое другое.
В целях эксперимента даже официальный сайт Raspberry Pi (а это большой и посещаемый сайт) однажды захостили на мини-компьютерах Raspberry Pi 3, пришлось соорудить кластер из восьми штук.
Кластер из четырёх Raspberry Pi Model B и одной Raspberry Pi Model B+, общая стоимость системы $183,34 (из другого проекта)
За сутки эксперимента кластер обслужил десятки миллионов посетителей.
Домашний веб-сервер на одноплатном компьютере потребляет совсем немного электроэнергии, для его работы достаточно единственной солнечной панели на балконе. В сентябре 2018 года энтузиаст из Low-tech Magazine запустил эксперимент с таким веб-сервером на одноплатнике Olimex Olinuxino A20 Lime 2, который к настоящему моменту почти бесперебойно работает примерно два года (аптайм около 95%).
Первый прототип солнечного сервера с контроллером заряда
По расчётам разработчика, расход энергии на одного уникального посетителя составляет 0,021 Вт⋅ч.
Упрощённая схема питания веб-сервера. На ней отсутствуют преобразователь напряжения с 12 на 5 вольт и счётчик ампер-часов
Блокчейн и распределённый хостинг
На базе блокчейна создан ряд экспериментальных проектов, в том числе криптовалюты, умные контракты, проверка подлинности документов, электронное голосование и многое другое, в том числе и децентрализованный
Welcome to the Swarm.... Bzzz Bzzzz Bzzzz / o ^ o / ( ) / ____________(%%%%%%%)____________ ( / / )%%%%%%%( ) (___/___/__/ ________) ( / /(%%%%%%%) ) (__/___/ (%%%%%%%) _____) /( ) / (%%%%%) (%%%) !
Децентрализованный
Программное обеспечение для работы Swarm выпускалось для всех основных платформ: Linux, macOS, Windows, Raspberry Pi, Android и iOS. Чтобы поднять у себя узел Swarm, нужно было скачать соответствующий бинарник с официальной страницы или поднять Swarm в контейнере Docker.
Однако новые версии для узлов Swarm не выходят с февраля 2020 года, так что сейчас работа сети под вопросом. Разработчики пишут, что они перешли к разработке нового клиента Bee, который основан на более продвинутом сетевом слое (libp2p). Они также считают, что проще переписать систему с нуля, чем исправлять ошибки. Так или иначе, но Swarm и Bee — это интересные эксперименты, которые демонстрируют концептуальную возможность распределённого
Можно упомянуть ещё один P2P-проект:
http://ipfs.pics/ipfs/QmcT99xWRNDAYunp7Zr8wGiwMKSgVfDpfbXw9hBtLCM4Mm
Файлы в распределённой сети IPFS практически невозможно удалить или заблокировать. Исходный код сервера опубликован на Github.
Чтобы защититься от мусора, сеть раздаёт на хранение новым пирам только те файлы, которые кто-то запрашивает.
Другой P2P-хостинг картинок можно организовать на фреймворке Tornado, если указать файловую систему GridFS. На Хабре публиковалась инструкция, как сделать такой сервис в 30-ти строчках кода.
«Хостинг» на чужих серверах
Если кто-то рискнёт открыть порты на своём компьютере и посмотрит в логи — то сразу поймёт, в какую враждебную среду он попал. Множество попыток сканирования по всем стандартным портам с запросами на установленное ПО. Если не принимать защитных мер, то в софте практически на любом сервере можно найти уязвимости — и получить к нему доступ с правами администратора.
Дальше злоумышленник уже сам выбирает, что делать с ресурсами, которые попали к нему в руки: сделать дефейс ради лулзов, установить майнер криптовалюты, добавить в ботнет для DDoS'а или разместить файлы для распространения. Это и называется «хостинг на чужих серверах» — незаконная опция, которой пользуются злоумышленники.
Например, самый крупный современный ботнет Emotet распространяет свою вредоносную нагрузку через сеть взломанных сайтов, которые бот-мастер с условным именем именем Иван контролирует через свои веб-шеллы, установленные там.
Так же работают некоторые другие ботнеты. В их состав которых входят домашние компьютеры, веб-серверы под Linux, смартфоны, маршрутизаторы и другие устройства интернета вещей, например, умные телевизоры под Android.
На устройствах из ботнета злоумышленник может размещать свои файлы как на своеобразном распределённом
В общем, собственный
Если же вам нужен надёжный сервер, который работает как швейцарские часы, то милости просим в ВДСину! Только современное и брендовое оборудование, одни из лучших дата-центров в России и Нидерландах, защита от DDoS «из коробки», удобная панель управления серверами собственной разработки и ещё много других плюшек. Поспешите заказать!
Автор: Александр