Запускаем свой web-сервер
Опубликовано: 23 октября 2010 Обновлено: 12 октября 2016

Если, проснувшись однажды утром, вы решили развернуть дома свой собственный веб-сервер, но не знаете с чего начать, то давайте будем разбираться вместе.

Если у вас на компьютере стоит windows, то вам повезло – смело читайте статью дальше.

Если у вас linux-подобная операционная система, то скорее всего вы – бородатый дядька в свитере, и зашли сюда случайно :-)
Но если это не так, и борода у вас еще не выросла, то оставайтесь, возможно, будет что-то интересное и для вас.

Итак приступим. Для начала определимся в понятиях и терминах.

Сервер – обширное понятие, под которым может подразумеваться как физическая машина (компьютер), так и программное обеспечение, работающее на машине. В дальнейшем под словом сервер будем понимать именно программное обеспечение (ПО). Когда говорят про веб-сервер (http-сервер), то имеют в виду ПО, работающее по протоколу http.

Http-протокол – это протокол обмена данными между клиентом и http-сервером (внезапно).

Клиент – это тот, кто отправляет запрос серверу в надежде получить ответ, а сервер – это тот, кто принимает запрос от клиента, обрабатывает его и выдает ответ. В нашем случае, клиенты – это браузеры, через которые люди просматривают веб-странички.

Клиент-серверное взаимодействие – это основа построения систем в интернете. Для обеспечения этого взаимодействия клиент должен знать адрес и порт сервера, куда слать запросы.

Адрес сервера определяет, где в сети находится физическая машина (компьютер), на которой запущен сервер. В качестве адреса сервера может выступать ip-адрес машины или доменное имя.

IP-адрес – адрес маршрутизации в сетях, построенных на протоколе IP. В случае 4-ой версии IP-протокола адреса выглядят так: 93.158.134.3, 192.168.0.1 и т.п.
У компьютера, подключенного к сети, обязательно есть ip-адрес – этот адрес настраивается вручную администратором или же автоматически выделяется службой DHCP. Если компьютер подключен к нескольким сетям, то в каждой из сетей у него будет свой ip-адрес.
Адрес 127.0.0.1 указывает на сам компьютер, это так называемая петля (loopback).

Доменное имя – имя, используемое для идентификации ресурса в сети интернет, например: yandex.ru, google.com. Для использования доменного имени оно должно быть зарегистрировано в службе-регистраторе.
Доменное имя соответствует конкретной машине в сети интернет. К одной машине может быть привязано несколько доменов, но не наоборот. Когда клиент обращается к серверу по домену, то специальная служба имен (DNS) ищет ip-адрес машины, соответствующий указанному домену.
Домен localhost привязан к текущему компьютеру, т.е. указывает на адрес 127.0.0.1.

Порт сервера определяет, где находится сервер в рамках конкретной машины. Порт представляет из себя число в диапазоне от 1 до 65535.
Некоторые порты уже "зарезервированы" под определенные протоколы передачи данных: например, http-протокол по умолчанию использует 80-ый порт. Зарезервированы указано в кавычках, поскольку нет жесткого требования использовать для того или иного протокола определенный порт.
В любой момент времени на машине может быть только один сервер, который использует конкретный порт – не может быть такого, что два сервера будут запущены на одном порту.

Итак, приступим к установке сервера. В качестве веб-сервера будем использовать nginx. Как показала практика мирового сообщества, это один из лучших серверов. Его используют как обычные программисты, так и крупные корпорации.

Если у вас Windows

Скачиваем с сайта дистрибутив (скачать дистрибутив) и распаковываем архив в какую-нибудь директорию. Предположим, мы распаковали в директорию d:/nginx/.

После того как установили дистрибутив стоит проверить конфигурацию nginx'а.
По умолчанию nginx настроен на 80-ый порт, а директория страниц ссылается на d:/nginx/html/.

Как проверить свободен ли 80-ый порт? Все просто, открываем любимый браузер и вводим в строке адреса: http://127.0.0.1:80/ – если браузер ответил ошибкой, то порт свободен, если же браузер отобразил какую-то страницу, значит какое-то приложение уже заняло 80-ый порт.

Переходим к настройке. Открываем для редактирования файл конфигурации d:/nginx/conf/nginx.conf и внимательно смотрим.

server { listen 80; ...

Параметр listen в секции server указывает какой порт будет слушать сервер. Если нас устраивает 80-ый порт, то оставляем его. Предположим, мы указали порт 8080.

Если в файле настроек вы увидели такое:

listen [::]:80;

то не стоит пугаться, это настройка порта для IP-протокола 6-ой версии. Если вы изменили порт по умолчанию, то и здесь его тоже стоит поправить.

root html;

Параметр root в секции server (или location /) указывает корневую директорию файлов нашего сервера. Это директория, в которой сервер будет искать файлы, при обращении к ним через браузер. Если нас устраивает директория html (d:/nginx/html/), то оставляем ее. Предположим, мы указали путь до директории d:/www/.

После сделанных изменений в файле конфигурации сохраняем его. Переходим к запуску.

Для запуска сервера выполняем в командной строке:

start nginx

Для тех, кто в танке, командная строка открывается так:
1. Win + R (или же Пуск » Выполнить).
2. Здесь указываем cmd и жмем Enter.
После этого надо перейти в каталог установки nginx:

cd /d d:/nginx/

Безусловно, запустить сервер можно было бы просто кликнув дважды по иконке приложения d:/nginx/nginx.exe, но вот, чтобы корректно остановить сервер, все равно нужна командная строка.

Для проверки работы создадим файл hello.txt в корневой директории файлов сервера (d:/www/hello.txt). Внутри файла напишем строку: Hello world.

Открываем любимый бразуер и в строке адреса указываем http://localhost:8080/hello.txt – и мы должны увидеть строку приветствия. Если же ничего не произошло, то у меня плохие новости – что-то пошло не так :-(

Чтобы остановить сервер, в командной строке выполняем:

nginx -s stop

Если у вас Debian / Ubuntu / RHEL / CentOS

Устанавливаем nginx через пакетный менеджер:

# Debian / Ubuntu apt-get install nginx # RHEL / CentOS yum install nginx

Переходим к настройке. Файл конфигурации можно найти тут: /etc/nginx/nginx.conf.

include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*;

Эти директивы указывают на то, что дополнительно файлы конфигураций надо искать в каталогах conf.d и sites-enabled.

Какова идея sites-enabled: в директории sites-enabled указываются символьные ссылки на активные конфигурации серверов из директории sites-available, в которой хранятся все конфигурации – и активные и неактивные.

Файл конфигурации по умолчанию можно найти тут: /etc/nginx/sites-available/default. По умолчанию сервер слушает 80-ый порт, а корневая директория файлов указывает на /var/www/html/. Если нас такие настройки не устраивают, то правим конфигурацию и сохраняем.

Для запуска сервера выполняем:

service nginx start

а для остановки сервера:

service nginx stop

Вот собственно и все, что требовалось для запуска собственного веб-сервера. Что с этим теперь делать, как создавать веб-страницы, исполняемые скрипты и прочее – об этом поговорим в следующих статьях.

По всем вопросам в настройке nginx стоит обратиться к официальной документации.

Добавить комментарий к статье:
― показать еще комментарии ―