- PVSM.RU - https://www.pvsm.ru -
Веб-сервер на Raspberry Pi
Чтобы выложить информацию в открытый доступ, необязательно покупать аккаунт у
А если мы хотим держать сайт полностью под своим контролем, то можем разместить веб-сервер на домашнем компьютере, одноплатнике Raspberry Pi или даже на мобильном телефоне. Главное, чтобы устройство всё время было в онлайне.
Домашний сервер в винтажном корпусе, источник [3]
Старому компьютеру всегда можно найти применение: он может работать как торрент-клиент и медиасервер (раздавая видео через Plex на все телевизоры, ноутбуки и смартфоны), как файловое хранилище, архив бэкапов, а также как веб-сервер. Нет ничего проще.
Конечно, для стандартного программного стека лучше установить Linux, но и в Windows нет ничего зазорного. По крайней мере, 29,2% серверов в интернете работает под Windows [4], так что не обязательно менять операционную систему, если на компьютере изначально стояла она, тем более если вам привычно работать с такими инструментами, как ASP.NET и C.
Для простоты можно сразу установить весь комплект программ. Выбираем один из стеков AMP [5] (Apache, MySQL/MariaDB, Perl/PHP/Python) под любую платформу: Windows, macOS, Linux, BSD. Например, комплект WampServer [6] под Windows.
WampServer — это платформа для веб-разработки под Windows для динамических веб-приложений с помощью сервера Apache2, интерпретатора скриптов PHP и базы данных MySQL. В него также входит веб-приложение PHPMyAdmin для простой обработки баз данных.
Устанавливаем софт, получаем у провайдера внешний IP-адрес, прописываем в конфигурации доменное имя, открываем в маршрутизаторе порты 80, 3306 (MySQL), 21 (FTP), 22(SSH) или меняем их на нестандартные для уменьшения мусорного трафика от ботов-сканеров — и всё должно работать.
Подробнее см. статью «Подкроватный хостинг: жуткая практика домашних хостингов» [7], а также большой список программного обеспечения [8], которое можно развернуть на собственном
Алгоритм понятен: нужно поднять веб-сервер на Raspberry Pi и подключить его к сети. Это не какая-то экзотика, а вполне штатное использование «малинки». На официальном сайте даже есть инструкции по установке Apache [9] и Nginx [10].
Как вариант, веб-сервер можно поднять прямо на маршрутизаторе [7] (с прошивкой 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-принтер в беспроводной принтер [11], установить собственный VPN-сервер [12] и многое другое.
В целях эксперимента даже официальный сайт Raspberry Pi [13] (а это большой и посещаемый сайт) однажды захостили на мини-компьютерах Raspberry Pi 3 [14], пришлось соорудить кластер из восьми штук.
Кластер из четырёх Raspberry Pi Model B и одной Raspberry Pi Model B+, общая стоимость системы $183,34 (из другого проекта [15])
За сутки эксперимента кластер обслужил десятки миллионов посетителей.
Домашний веб-сервер на одноплатном компьютере потребляет совсем немного электроэнергии, для его работы достаточно единственной солнечной панели на балконе. В сентябре 2018 года энтузиаст из Low-tech Magazine запустил эксперимент с таким веб-сервером [16] на одноплатнике Olimex Olinuxino A20 Lime 2, который к настоящему моменту почти бесперебойно работает примерно два года (аптайм около 95%).
[17]
Первый прототип солнечного сервера с контроллером заряда
По расчётам разработчика, расход энергии на одного уникального посетителя составляет 0,021 Вт⋅ч.
Упрощённая схема питания веб-сервера. На ней отсутствуют преобразователь напряжения с 12 на 5 вольт и счётчик ампер-часов
На базе блокчейна создан ряд экспериментальных проектов, в том числе криптовалюты, умные контракты, проверка подлинности документов, электронное голосование и многое другое, в том числе и децентрализованный
Welcome to the Swarm.... Bzzz Bzzzz Bzzzz / o ^ o / ( ) / ____________(%%%%%%%)____________ ( / / )%%%%%%%( ) (___/___/__/ ________) ( / /(%%%%%%%) ) (__/___/ (%%%%%%%) _____) /( ) / (%%%%%) (%%%) !
Децентрализованный
Программное обеспечение для работы Swarm выпускалось для всех основных платформ: Linux, macOS, Windows, Raspberry Pi, Android и iOS. Чтобы поднять у себя узел Swarm, нужно было скачать соответствующий бинарник с официальной страницы [19] или поднять Swarm в контейнере Docker.
Однако новые версии для узлов Swarm не выходят с февраля 2020 года, так что сейчас работа сети под вопросом. Разработчики пишут [20], что они перешли к разработке нового клиента Bee [21], который основан на более продвинутом сетевом слое (libp2p [22]). Они также считают, что проще переписать систему с нуля, чем исправлять ошибки. Так или иначе, но Swarm и Bee — это интересные эксперименты, которые демонстрируют концептуальную возможность распределённого
Можно упомянуть ещё один P2P-проект:
http://ipfs.pics/ipfs/QmcT99xWRNDAYunp7Zr8wGiwMKSgVfDpfbXw9hBtLCM4Mm
Файлы в распределённой сети IPFS практически невозможно удалить или заблокировать. Исходный код сервера опубликован на Github [25].
Чтобы защититься от мусора, сеть раздаёт на хранение новым пирам только те файлы, которые кто-то запрашивает.
Другой P2P-хостинг картинок можно организовать на фреймворке Tornado [26], если указать файловую систему GridFS [27]. На Хабре публиковалась инструкция, как сделать такой сервис в 30-ти строчках кода [28].
Если кто-то рискнёт открыть порты на своём компьютере и посмотрит в логи — то сразу поймёт, в какую враждебную среду он попал. Множество попыток сканирования по всем стандартным портам с запросами на установленное ПО. Если не принимать защитных мер, то в софте практически на любом сервере можно найти уязвимости — и получить к нему доступ с правами администратора.
Дальше злоумышленник уже сам выбирает, что делать с ресурсами, которые попали к нему в руки: сделать дефейс ради лулзов, установить майнер криптовалюты, добавить в ботнет для DDoS'а или разместить файлы для распространения. Это и называется «хостинг на чужих серверах» — незаконная опция, которой пользуются злоумышленники.
Например, самый крупный современный ботнет Emotet распространяет свою вредоносную нагрузку через сеть взломанных сайтов, которые бот-мастер с условным именем именем Иван [29] контролирует через свои веб-шеллы, установленные там.
Так же работают некоторые другие ботнеты. В их состав которых входят домашние компьютеры, веб-серверы под Linux, смартфоны, маршрутизаторы и другие устройства интернета вещей, например, умные телевизоры под Android [30].
На устройствах из ботнета злоумышленник может размещать свои файлы как на своеобразном распределённом
Если же вам нужен надёжный сервер [31], который работает как швейцарские часы, то милости просим в ВДСину! Только современное и брендовое оборудование, одни из лучших дата-центров в России и Нидерландах, защита от DDoS «из коробки», удобная панель управления серверами собственной разработки и ещё много других плюшек. Поспешите заказать!
Автор: Александр
Источник [32]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/raspberry-pi/357476
Ссылки в тексте:
[1] хостинг-провайдера: https://www.reg.ru/?rlink=reflink-717
[2] Github Pages: https://pages.github.com/
[3] источник: https://www.armortechs.com/make-it-useful-again-turn-that-old-pc-into-a-diy-home-media-server
[4] 29,2% серверов в интернете работает под Windows: https://w3techs.com/technologies/overview/operating_system
[5] один из стеков AMP: https://en.wikipedia.org/wiki/List_of_Apache%E2%80%93MySQL%E2%80%93PHP_packages
[6] WampServer: https://www.wampserver.com/en/
[7] «Подкроватный хостинг: жуткая практика домашних хостингов»: https://habr.com/ru/company/vdsina/blog/486762/
[8] большой список программного обеспечения: https://github.com/awesome-selfhosted/awesome-selfhosted
[9] Apache: https://www.raspberrypi.org/documentation/remote-access/web-server/apache.md
[10] Nginx: https://www.raspberrypi.org/documentation/remote-access/web-server/nginx.md
[11] превратить USB-принтер в беспроводной принтер: https://maker.pro/raspberry-pi/projects/how-to-turn-a-usb-printer-into-a-wireless-printer-with-raspberry-pi-zero-w
[12] собственный VPN-сервер: https://www.pivpn.io/
[13] официальный сайт Raspberry Pi: https://www.raspberrypi.org/
[14] однажды захостили на мини-компьютерах Raspberry Pi 3: https://www.raspberrypi.org/blog/the-little-computer-that-could/
[15] другого проекта: https://medium.com/swlh/how-i-built-a-raspberry-pi-cluster-for-cheap-38ab661bd641
[16] эксперимент с таким веб-сервером: https://solar.lowtechmagazine.com/2018/09/how-to-build-a-lowtech-website/
[17] Image: https://hsto.org/webt/eh/th/2d/ehth2dv7ykrf9lj6lrozxqzmdei.jpeg
[18] Swarm: https://swarm-gateways.net/bzz:/swarm.eth/
[19] официальной страницы: https://swarm-gateways.net/bzz:/swarm.eth/downloads/
[20] пишут: https://swarm-guide.readthedocs.io/en/latest/introduction.html
[21] Bee: https://github.com/ethersphere/bee
[22] libp2p: https://docs.libp2p.io/
[23] ipfs.pics: http://ipfs.pics/
[24] InterPlanetary File System: https://ipfs.io/
[25] опубликован на Github: https://github.com/ipfspics/ipfspics-server
[26] Tornado: https://www.tornadoweb.org/en/stable/
[27] GridFS: https://docs.mongodb.com/manual/core/gridfs/
[28] 30-ти строчках кода: https://habr.com/ru/post/230607/
[29] условным именем именем Иван: https://paste.cryptolaemus.com/emotet/2020/07/23/emotet-malware-IoCs_07-23-20.html
[30] умные телевизоры под Android: https://wootcloud.com/wp-content/uploads/2019/10/WootCloud-Discovers-ARES-ADB-IOT-Botnet-Targeting-Android-Devices-especially-STBs_-TVs-1.pdf
[31] надёжный сервер: https://vdsina.ru/cloud-servers?partner=habr120
[32] Источник: https://habr.com/ru/post/521382/?utm_source=habrahabr&utm_medium=rss&utm_campaign=521382
Нажмите здесь для печати.