Установка и настройка сервера Nginx Linux.

Введение.

В операционной среде Linux существует несколько веб серверов для работы с приложениями, использующих в качестве клиентов браузеры. Одним из них является Nginx (энджи́нкс) — лёгкий и быстрый веб-сервер. Используется как HTTP1 движок или в качестве прокси, для «тяжёлых» веб-серверов Apache2, IIS3. Сервер занимает, в ресурсном сегменте IT приложений, одно из основных мест для различных интернет площадок. Выпускается под BSD4 лицензией. В статье рассмотрены вопросы базовой установки сервера для обслуживания HTTP запросов на «слабом» оборудовании.

  • Стенд:
    • ALT Linux сервер, имя lin-nginx; ip-10.0.2.11;

Функциональность Nginx.

  • Сервер может использоваться для:
    • индексирования запросов
    • кеширования основного сервера
    • распределения нагрузки серверов
    • создания виртуальных серверов по IP адресам
    • узла выполняющего геолокации по IP адресам
    • как ретранслятор для IMAP5 и POP36 запросов

Архитектура.

В качестве модели используется архитектура модульной системы — один главный и несколько дочерних рабочих процессов. Рабочие процессы, запускаются под непривилегированным пользователем. Самое простое использование сервера Nginx — отвечать на html запросы с помощью одного модуля, как будет показанное ниже.

Установка.

Для стенда, выбираем сервер минимальной конфигурации на котором установим следующие пакеты.

# apt-get update
# apt-get install nginx

Настройка Nginx.

Основные действия проводятся в файле конфигурации каталога Nginx. Мы покажем классическую схему настройки сервера для ответов на html запросы.

  • Каталоги Nginx.
    • /etc/nginx/ — домашний каталог
    • /etc/nginx/nginx.conf — каталог настроек сервера
    • /usr/local/nginx/logs/nginx.pid — каталог главного процесса
  • /etc/nginx/sites-available.d — каталог настроек сайта
    • /etc/nginx/sites-enabled.d/ — каталог запуска сайта
    • /var/log/nginx — каталог журналов
    • ps -ax | grep nginx — процессы

Сценарий работы сайта.

Рассмотрим базовый файл настроек сервера /etc/nginx/nginx.conf

# cat /etc/nginx/nginx.conf
# load dynamic nginx modules
include /etc/nginx/modules-enabled.d/*.conf;

# see http://nginx.net for info & docs

worker_processes  10;

error_log   /var/log/nginx/error.log;

events {
        worker_connections  1024;
}

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

http {
        proxy_temp_path /var/spool/nginx/tmp/proxy;
        fastcgi_temp_path /var/spool/nginx/tmp/fastcgi;
        client_body_temp_path /var/spool/nginx/tmp/client;

        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;

        sendfile  on;

        gzip  on;

        # text/html doesn't need to be defined there, it's compressed always
        gzip_types text/plain text/css text/xml application/x-javascript application/atom+xml;

        # gzip_comp_level 9;
        include /etc/nginx/sites-enabled.d/*.conf;
}

Из листинга видно, что основных процессов 10, число соединений 1024, так же указаны рабочие каталоги журналов и исполняемых файлов.

Построим стендовый сайт. В каталог /etc/nginx/sites-available.d поместим файл nglab.conf.

# cd /etc/nginx/sites-available.d/
# touch nglab.conf

Запишем в файл nglab.conf первый кодовый блок.

server {
  listen 80;
  server_name localhost .local 10.0.2.11;

  access_log /var/log/nginx/access.log;
  error_log /var/log/nginx/error.log;

  location / {
    root /var/www/html/;
    autoindex on;
   }
}

Создадим символическую ссылку для nglab.conf в рабочем каталоге /etc/nginx/sites-enabled.d/

ln -s /etc/nginx/sites-available.d/nglab.conf /etc/nginx/sites-enabled.d/nglab.conf

Управление Nginx.

Управление сервером определяется стандартными командами Linux

# systemctl start|stop|restart|status nginx
# systemctl enable|disable|is-enabled nginx
# ps -ax | grep nginx

Внутри Nginx используются свои команды, наиболее популярные из которых приводятся ниже.

  • команды Nginx,
    • nginx -s stop остановка сервера
    • nginx -s reload перезапуск настроек сервера
    • nginx -T проверка конфигурации, полная
    • nginx -t проверка конфигурации, краткая
    • nginx -h справочная информация

Пример.

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfu

Работа с сайтом.

Все подготовительные действия для запуска сервера Nginx выполнены. Поместим в корневой каталог /var/www/html файл index.html.

<html><body><h1>It works! Nginx</h1></body></html>

Набрав в браузере адрес стенда убедимся, что всё работает.

Добавим в конфигурацию сервера, секцию для публикаций снимков.

# mkdir /var/www/html/images
# nginx -s reload
server {
  listen 80;
  server_name localhost .local 10.0.2.11;

  access_log /var/log/nginx/access.log;
  error_log /var/log/nginx/error.log;

  location / {
        root /var/www/html/;
    }

    location /images/ {
        root /var/www/html/;
    }
}

Для проверки поместим в каталог images файл foto.jpg и отредактируем index.html.

<!DOCTYPE html>
<html>
<head>
     <meta charset="utf-8">
<title>Галерея</title>
</head>
<body>
<p><a href="images/foto.jpg" target="_blank" dir="ltr">Вид красивого моста через реку. </a></p>
</body>
</html>

Теперь при обращении к серверу появляется надпись.

Безопасность сервера.

Для ограничения действия злоумышленников, ограничим права доступ к основным каталогам и файлам Nginx.

# chmod 755 /var/www/html
# chmod 644 /var/www/html/index.html
# chmod 755 /var/www/html/images
# chmod 644 /var/www/html/images/foto.jpg
# chown -R _nginx._nginx /var/www/html

Заключение.

В статье показаны основные, базовые понятия, установки и настройке веб сервера Nginx на базе ОС ALT Linux. Администратор или опытный пользователь может без труда повторить действия описанные выше. На базе изложенного материала можно создать информационный сайт, обладающий надёжностью, низкой стоимостью и скоростью. Одним из достоинств сайта — возможность использования его на очень «слабых» компьютерах и серверах.

Полезные ссылки.

Сноски.

  1. протокол передачи гипертекста (HyperText Transfer Protocol) ↩︎
  2. программное обеспечение для развертывания веб сервера ↩︎
  3. набор серверов для нескольких служб Интернета от компании Microsoft. ↩︎
  4. позволяет свободно использовать, изменять и распространять программное обеспечение. ↩︎
  5. IMAP (Internet Message Access Protocol) — протокол для доступа к сообщениям хранящимся на сервере электронной почты ↩︎
  6. POP3 (Post Office Protocol Version 3 )— почтового протокол хранящимся на ПК электронной почты ↩︎

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Copyright © 2011-2024
Все права защищены.
При перепечатке указать источник: kabtim.ru
Контакты