Многие начинающие и не очень программисты (или просто пользователи компьютера ) сталкивались с такой задачей: "Как сделать свой сайт и разместить его в интернете без покупки сервера?" спойлер - несложно!
Первым делом, необходимо определиться с конфигурацией, которая у вас работает. Белый или серый IP-адрес выдан Вам для подключения? Как подключен интернет дома? Какая операционная система установлена на компьютере и как будет запускаться сайт? Нужно доменное имя?
Разберем подробнее, что нам нужно:
Белый или серый IP-адрес выдан Вам для подключения?
Некоторые интернет-провайдеры выдают пользователям серые IP адреса. Разницу необходимо понимать (почитать). Для того, чтобы определить какой адрес именно у Вас, переходим по ссылке и смотрим в какой диапазон попадает Ваш адрес. Если адрес отличен от адресов ниже, то все прекрасно - продолжаем.
- От 10.0.0.0 до 10.255.255.255 с маской 255.0.0.0 или /8;
- От 172.16.0.0 до 172.31.255.255 с маской 255.240.0.0 или /12;
- От 192.168.0.0 до 192.168.255.255 с маской 255.255.0.0 или /16;
- От 100.64.0.0 до 100.127.255.255 с маской подсети 255.192.0.0 или /10.
Если непонятно про маски - воспользуйтесь калькулятором.
Как подключен интернет дома?
Необходимо понять структуру вашей сети. Работаете вы через маршрутизатор (роутер) по WiFi, или напрямую Ethernet-кабель подключен к компьютеру.
Разберем случай с использованием WiFi, для того чтобы через интернет попадать именно к Вам на компьютер, необходимо открыть порт, на котором будет работать сайт или программа. Смысл данной процедуры опишу в двух словах: когда Вы смотрели свой IP адрес через какой-либо интернет-сервис, это был не адрес компьютера, а адрес вашего роутера. Когда человек из интернета захочет попасть на Ваш сайт, ему необходимо миновать роутер. Современный роутер является, своего рода, защитой.
Для того, чтобы открыть порт можно ввести в поисковике фразу: "Как открыть порт на роутере ...", вместо точек указав модель Вашего роутера. Процедура несложная, занимает пару минут времени.
Приведу пример (роутер Tenda n301):
1. Заходим по IP в панель администрирования роутера (обычно, это адрес1 или адрес2). Для работы необходимы логин и пароль для настройки.
2. Открываем порт 80, предварительно загуглив, как это сделать, и узнав серый адрес своего компьютера, например так. Сайты работают на двух портах: 80 и 443. Разница в шифровании передаваемой информации. Нам достаточно 80 порта, без шифрования.
3. Сохраняем настройки.
Какая операционная система установлена на компьютере и как будет запускаться сайт?
Ваш сайт, должен запускаться WEB-сервером. Наиболее распространенные WEB-сервера - Nginx, Apache, IIS. Как создать сайт будет написано в другой статье.
В случае с ОС семейства Windows необходимо создать правила Брандмауэра.
1. Открываем панель управления -> Система и безопасность -> Брандмауэр Защитника Windows. Слева в меню пункт "Дополнительные параметры".
2. Правила для входящих подключений. Создать правило. Для порта -> Далее -> Указываем порт (80 - HTTP) -> Далее -> Разрешить подключение для всех типов сетей. Задаем имя правила и жмем "готово".
Если у Вас установлена ОС на базе ядра Linux. Ищите информацию по "фаерволу", который установлен, будь то Iptables, ufw или что-то другое, и открывайте наш 80 порт для входящих соединений.
Нужно доменное имя?.
Итак, мы запустили WEB-сервер (пускай даже с первоначальными настройками), настроили роутер и в итоге - получили работающий сервер на домашнем ПК, но как теперь на него зайти?
Ответ: нужно в браузере ввести свой белый IP адрес. Если все настроено правильно, то роутер "пробросит" ваше соединение и выведет информацию с запущенного WEB-сервера.
Всегда вводить IP адрес для сайта - скучно и неудобно, поэтому все сайты используют доменные имена. Допустим у нас есть доменное имя "пример.рф". Чтобы ввести в браузере адрес пример.рф и попасть на домашний сайт необходимо привязать доменное имя к IP адресу. Подробнее описывать не буду. На сайтах, где можно приобрести доменное имя, есть хорошие инструкции для этого.
Таким образом, если Вы хотите просто поиграть и попробовать свой сайт, доменное имя, конечно не нужно.
В итоге, мы получаем рабочую схему, на которой можно, допустим, протестировать идею для сайта. Необходимо понимать, что высокой нагрузки, такая схема, не выдержит. Интернет в квартирах, бывает, не работает, и электричество не бесплатное. Я бы рекомендовал пользоваться услугами хостингов, они прилагают больше усилий для обеспечения постоянного подключения к сайту и пр.
Спасибо за внимание!