Данный текст является вольным переводом этой статьи.
Если Вы веб-разработчик, то Вы скорее всего слышали о nginx. (произносится как engine-x. никогда не задумывался об этом — прим.переводчика)
Однако, к nginx очень немного документации, есть туториалы, но их количество не радует, есть Wiki, но там рассматриваются все возможные варианты и функции, а не базовые, в которых обычно Вы и нуждаетесь. После моих тягот и плясок с бубном я написал эту статью, где будет рассмотрено поднятие сервера и работа с ним. Вам потребуется: VPS сервер или любой другой сервер с прямым контролем, желательно свежий, чтобы избежать конфликтов со старым ПО. Если Вас заинтересовала данная тема, прошу под хабракат.
Тут все просто: стандартный apt-get —
Идем далее: все конфигурационные файлы хранятся в
Конфиги nginx хранятся в папке
Давайте создадим свой конфигс преферансом и....
Создаем новый файл
В конфигурационные файлах nginx используется свой язык, но он довольно простой.
Главный блок — server, который выглядит вот так:
В этот блок можно вставить директиву. Директивы бывают простые и блочные. Простые заканчиваются точкой с запятой
Директив довольно много, все они представлены в документации.
Для простого сервера хватит всего нескольких, сейчас мы их и рассмотрим.
Ссылка на документацию — listen.
Эта директива устанавливает порт на котором и будет работать сервер.
Стандартный HTTP порт — 80, SSL — 443.
Пока мы будет использовать 80 порт, так что:
Ссылка на документацию — server_name.
Когда nginx получает какой-либо запрос, он смотрит на URL и ищет блок
Допустим, если Ваш сайт располагается на
Кстати, никто и ничто не мешает сделать Вам еще один блок
Еще: с директивой
Но пока остановимся и напишем лишь базовый конфиг:
Ссылка на документацию — root.
Эта директива определяет папку, в которой хранятся Ваши файлы. Я храню свои файлы в
Хорошо, теперь вернемся к нашему конфигурационному файлу и добавим директиву
Проблема в том, что nginx пока еще не знает об изменениях в нашем конфигурационном файле, и отображает его старую версию. Чтобы перезагрузить nginx можно использовать команду
Теперь просто посетим IP нашего сервера и увидим уже обновленную страницу!
От переводчика:
Может быть, эта статья помогла Вам в чем-то. До новых встреч! (надеюсь)
Если Вы веб-разработчик, то Вы скорее всего слышали о nginx. (произносится как engine-x. никогда не задумывался об этом — прим.переводчика)
Однако, к nginx очень немного документации, есть туториалы, но их количество не радует, есть Wiki, но там рассматриваются все возможные варианты и функции, а не базовые, в которых обычно Вы и нуждаетесь. После моих тягот и плясок с бубном я написал эту статью, где будет рассмотрено поднятие сервера и работа с ним. Вам потребуется: VPS сервер или любой другой сервер с прямым контролем, желательно свежий, чтобы избежать конфликтов со старым ПО. Если Вас заинтересовала данная тема, прошу под хабракат.
Установка
Тут все просто: стандартный apt-get —
apt-get install nginx
. Заходим на IP сервера через браузер, и видим приветственную надпись. Выдохнули, тут обошлось без подводных камней.Идем далее: все конфигурационные файлы хранятся в
/etc/nginx
, давайте переместимся туда.Конфиги nginx хранятся в папке
sites-enabled
. Если вы проверите содержимое данной папки, то обнаружите файл default
, который и отвечает за показ приветственного сообщения.Давайте создадим свой конфиг
Создаем новый файл
test
внутри папки sites-enabled
и откроем его любым текстовым редактором.Настройка
В конфигурационные файлах nginx используется свой язык, но он довольно простой.
Главный блок — server, который выглядит вот так:
server {
}
В этот блок можно вставить директиву. Директивы бывают простые и блочные. Простые заканчиваются точкой с запятой
;
, блочные же открываются и закрываются фигурными скобками. Все стандартно.Директив довольно много, все они представлены в документации.
Для простого сервера хватит всего нескольких, сейчас мы их и рассмотрим.
listen
Ссылка на документацию — listen.
Эта директива устанавливает порт на котором и будет работать сервер.
Стандартный HTTP порт — 80, SSL — 443.
Пока мы будет использовать 80 порт, так что:
server {
listen 80;
}
server_name
Ссылка на документацию — server_name.
Когда nginx получает какой-либо запрос, он смотрит на URL и ищет блок
server
с такой же server_name
директивой.Допустим, если Ваш сайт располагается на
http://example.com
, Ваш server_name
будет example.com
.Кстати, никто и ничто не мешает сделать Вам еще один блок
server
с другим server_name
. Согласитесь, удобно хостить несколько сайтов на одном nginx. Еще: с директивой
server_name
можно спокойно использовать суб-домены. Например, удобно привязать к admin.example.com
меню администратора.Но пока остановимся и напишем лишь базовый конфиг:
server {
listen 80;
server_name example.com;
}
root
Ссылка на документацию — root.
Эта директива определяет папку, в которой хранятся Ваши файлы. Я храню свои файлы в
/var/www
, так что для примера создадим там папку example
с помощью mkdir
, и внутри этой папки создадим файл index.html
с любым кодом.Хорошо, теперь вернемся к нашему конфигурационному файлу и добавим директиву
root
, Теперь он выглядит вот так:server {
listen 80;
server_name example.com;
root /var/www/example;
}
Финальный аккорд
Проблема в том, что nginx пока еще не знает об изменениях в нашем конфигурационном файле, и отображает его старую версию. Чтобы перезагрузить nginx можно использовать команду
service nginx reload
- Замечание: команда
service
на самом деле просто ссылается на конфигурационные файлы, которыеapt
установил в файловую систему Вашего сервера. В данном случае на:/etc/init.d/nginx reload
Теперь просто посетим IP нашего сервера и увидим уже обновленную страницу!
От переводчика:
Может быть, эта статья помогла Вам в чем-то. До новых встреч! (надеюсь)