Руководство для начинающих по локальному хостингу веб-сайтов
TLDR; Я разместил этот веб-сайт на сервере Ubuntu 22.04, работающем на 8 ГБ RAM raspberry-pi за CGNAT. Трафик маршрутизируется через cronjob с обновлением DNS от cloudflare и менеджер nginx-proxy.
Я начал заниматься самостоятельным хостингом в 2021 году, и мне понравилась идея иметь компьютер в облаке со всей мощностью, о которой я мог просить (если бы у меня были на это деньги…). Я сам завел блог, чтобы мы с друзьями писали глупости, журнал, сервер Minecraft и веб-сайт. Всех этих сервисов было достаточно, чтобы убить мой симпатичный маленький инстанс t2.micro AWS EC2 с 1 ГБ оперативной памяти, поэтому я перешел на студенческий план Azure, где я сжег бесплатные кредиты в размере 100 долларов США благодаря отсутствию управления затратами и опыта IaaS.
Несмотря на то, что к тому времени мой энтузиазм и волнение по поводу VPS и облачных хостов закончились, несколько месяцев спустя мне порекомендовали несколько видеороликов на YouTube. СетьЧак, удивительный ютубер, который занимается крутыми сетевыми делами и штуками, связанными с pi. Мой интерес к серверам и DevOps возродился благодаря этому парню! Я прочитал больше о raspberry pi в Интернете и подумал, что было бы здорово иметь небольшой физический компьютер, работающий в качестве сервера для размещения моих веб-приложений и других вещей, связанных с блокировкой рекламы и VPN.
В поисках Пи
Я начал искать лучший пи для своих нужд, как будто у меня было много опции. Я слышал о нехватке полупроводников и раньше, но впервые столкнулся с этим лично. Я заказал полный комплект у неавторизованного продавца из Бангалора, что было рискованно, но они ничуть не разочаровали. я получил Комплект за 3 дня и был готов возиться, спасибо ПиБокс Индия и их отличная поддержка! (Я также получил бесплатный модуль камеры для пи, что сделало процесс распаковки еще лучше)
Альтернативы?
Я не нашел онлайн-провайдера VPS, потому что известные были слишком дорогими, а дешевые — слишком сомнительными. Мне просто нужен был домашний сервер и среда разработки для размещения моих материалов, поэтому ежемесячная подписка была бы дороже, чем маленькая физическая машина, которую я мог бы использовать вечно. Причина, по которой я не использую старый ПК, — просто портативность, размер и общее отсутствие интереса. Не говоря уже о том, что я также могу использовать pi как настоящий настольный компьютер или заниматься другими вещами IoT.
Начиная
Впервые держа SBC в руке, я чувствовал себя по-другому, и я был очарован, узнав, насколько мощной на самом деле является машина размером с кредитную карту. В комплекте была карта microSD на 32 ГБ с предустановленной 32-битной ОС Raspberry pi, которую я сразу же отформатировал, потому что хотел получить больше практических навыков работы с машиной. Я загрузил его с 64-битной Ubuntu 22.04, благодаря их преданный документы Затем я установил докер и портейнер, следуя этому видео. онлайн. Я уже работал с докером на стажировках, так что во многом разобрался сам. Я настроил Nginx-proxy-manager на порт 80 и был готов к работе.
… готов работать только на локальном хосте, хотя.
Затем я начал с того, что, как мне казалось, было самым простым шагом в этом процессе. Просто указываю домен на мой общедоступный IP-адрес, и вуаля! У меня был бы публичный сайт. Однако это был не тот случай.
Как показано выше, общедоступный IP-адрес был показан на популярных веб-сайтах. онлайн на самом деле был IP-адресом моего интернет-провайдера для моей местности. Это было не то же самое, что IP-адрес, который показал мне мой маршрутизатор. Я был в замешательстве несколько часов и искал это в Интернете, где я узнал о ЦГНАЦ.
Обход CGNAT
Я знал, что больше не могу использовать адрес ipv4, потому что получить статический IP-адрес будет дорого, а общение с индийским интернет-провайдером было последним, на что я хотел потратить свои выходные.
Естественно, переход на ipv6 с ipv4 и записи AAAA с записей A был единственным жизнеспособным и простым решением. Адрес ipv6, который был назначен моему устройству, был уникальным и видимым в Интернете.
Однако это сопровождалось еще одной проблемой. Адреса IPv6 по умолчанию часто сбрасываются в соответствии с временной арендой DHCP. Я не хотел менять это поведение, так как не был специалистом по сетям и скептически относился к изменению настроек роутера.
Наконец, после неустанных поисков ответов в Интернете, я нашел простой прорыв. Некоторые решения просили людей получить VPS, но я не планировал ничего платить дополнительно; кроме того, этот и другие варианты, такие как подключение через VPN, были слишком сложными или длительными, чтобы их даже рассматривать, не говоря уже о том, что некоторые из них даже приводили к задержке в сети.