По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Хэй! Поговорим про WinSCP. Это тонкий клиент под Windows, который предназначен SFTP (SSH File Transfer Protocol), FTP и SCP подключения к нужным хостам. Если говорить кратко, то этот софт предназначен для безопасного копирования файлов между сервером, к которому вы подключены и вашим компьютерам. Это очень удобно, когда вы подключаетесь к Linux машине и хотите скачать оттуда какие - либо файлы. Согласитесь, сделать это через консоль (CLI) будет очень трудно. Давайте посмотрим, как скачать WinSCP и выполнить установку и дальнейшее подключение. Матчасть! SCP происходит от английского secure copy - это тулза и по совместительству протокол копирования. Нужна для безопасного и удаленного копирования файлов. Безопасно, потому, что в качестве транспорта SCP использует протокол SSH. Скачать WinSCP Первым делом нужно загрузить ПО. Кликайте на ссылку ниже, чтобы скачать WinSCP: Скачать WinSCP Как только вкладка откроется, внизу вы найдете зеленую кнопку с надписью в формате "Download WinSCP 5.17.7 (10.6 MB)". Сразу после этого начнется загрузка. Установка WinSCP Кликаем на инсталлятор. В первом меню нажимаем "Принять" (прочтите лицензионное соглашение): Рекомендуемой установки вам хватит более чем. Нажимаем "Далее" Стиль интерфейса юзера. Выбирайте "Коммандер" и нажмите "Далее": Финальный экран. Нажимайте "Установить": По окончанию установки оставьте флажок "Запустить WinSCP": Запуск и работа в WinSCP Мы скачали и установили утилиту WinSCP, а теперь запустим и покажем, как подключиться к серверу. Пусть по легенде у нас будет машина с CentOS, с которой нам нужно вытянуть определенные файлы. Открываем консоль WinSCP и указываем: Протокол передачи: SFTP Имя хоста: 192.168.0.13 Порт: 22 Имя пользователя: root Пароль: ваш_пароль И нажимаем "Войти". Подключаемся и готово - теперь из правой рабочей области (зоны сервера) вы можете переключаться по каталогам в удобной графической форме и просто перетаскивать нужный файл как с сервера, так и на сервер.
img
В этой первой части статьи мы сначала рассмотрим некоторые методы обслуживания сетей. Существуют различные модели, которые помогут вам поддерживать ваши сети и сделать вашу жизнь проще. Во второй части статьи мы рассмотрим некоторые теоретические модели, которые помогут вам в устранении неполадок. Ну что давайте начнем рассматривать техническое обслуживании сети! Обслуживание сети в основном означает, что вы должны делать все необходимое для поддержания сети в рабочем состоянии, и это включает в себя ряд задач: Устранение неполадок в сети; Установка и настройка аппаратного и программного обеспечения; Мониторинг и повышение производительности сети; Планирование будущего расширения сети; Создание сетевой документации и поддержание ее в актуальном состоянии; Обеспечение соблюдения политики компании; Обеспечение соблюдения правовых норм; Обеспечение безопасности сети от всех видов угроз. Конечно, этот список может отличаться для каждой сети, в которой вы работаете. Все эти задачи можно выполнить следующим образом: Структурированные задачи; Interrupt-driven задачи. Структурированный означает, что у вас есть заранее определенный план обслуживания сети, который гарантирует, что проблемы будут решены до того, как они возникнут. Как системному администратору, это сделает жизнь намного проще. Управляемый прерыванием означает, что вы просто ждете возникновения проблемы, а затем исправляете ее так быстро, как только можете. Управляемый прерыванием подход больше похож на подход "пожарного" ...вы ждете, когда случится беда, а затем пытаетесь решить проблему так быстро, как только можете. Структурированный подход, при котором у вас есть стратегия и план обслуживания сети, сокращает время простоя и является более экономичным. Конечно, вы никогда не сможете полностью избавиться от Interrupt-driven, потому что иногда все "просто идет не так", но с хорошим планом мы можем точно сократить количество задач, управляемых прерываниями. Вам не нужно думать о модели обслуживания сети самостоятельно. Есть ряд хорошо известных моделей обслуживания сети, которые используются сетевыми администраторами. Лучше всего использовать одну из моделей, которая лучше всего подходит для вашей организации и подкорректировать, если это необходимо. Вот некоторые из известных моделей обслуживания сети: FCAPS: Управление неисправностями. Управление конфигурацией. Управление аккаунтингом. Управление производительностью. Управление безопасностью. Модель обслуживания сети FCAPS была создана ISO (Международной организацией стандартизации). ITIL: библиотека ИТ-инфраструктуры - это набор практик для управления ИТ-услугами, который фокусируется на приведении ИТ-услуг в соответствие с потребностями бизнеса. TMN: сеть управления телекоммуникациями - это еще одна модель технического обслуживания, созданная ITU-T (сектор стандартизации телекоммуникаций) и являющаяся вариацией модели FCAPS. TMN нацелена на управление телекоммуникационными сетями. Cisco Lifecycle Services: конечно, Cisco имеет свою собственную модель обслуживания сети, которая определяет различные фазы в жизни сети Cisco: Подготовка Планирование Проектирование Внедрение Запуск Оптимизация Выбор модели обслуживания сети, которую вы будете использовать, зависит от вашей сети и бизнеса. Вы также можете использовать их в качестве шаблона для создания собственной модели обслуживания сети. Чтобы дать вам представление о том, что такое модель обслуживания сети и как она выглядит, ниже приведен пример для FCAPS: Управление неисправностями: мы будем настраивать наши сетевые устройства (маршрутизаторы, коммутаторы, брандмауэры, серверы и т. д.) для захвата сообщений журнала и отправки их на внешний сервер. Всякий раз, когда интерфейс выходит из строя или нагрузка процессора превышает 80%, мы хотим получить сообщение о том, чтобы узнать, что происходит. Управление конфигурацией: любые изменения, внесенные в сеть, должны регистрироваться в журнале. Чаще всего используют управление изменениями, чтобы соответствующий персонал был уведомлен о планируемых изменениях в сети. Изменения в сетевых устройствах должны быть зарегистрированы и утверждены до того, как они будут реализованы. Управление аккаунтингом: Мы будем взимать плату с (гостевых) пользователей за использование беспроводной сети, чтобы они платили за каждые 100 МБ данных или что-то в этом роде. Он также обычно используется для взимания платы с людей за междугородние VoIP-звонки. Управление производительностью: производительность сети будет контролироваться на всех каналах LAN и WAN, чтобы мы знали, когда что-то пойдет не так. QoS (качество обслуживания) будет настроено на соответствующих интерфейсах. Управление безопасностью: мы создадим политику безопасности и реализуем ее с помощью брандмауэров, VPN, систем предотвращения вторжений и используем AAA (Authorization, Authentication and Accounting) для проверки учетных данных пользователей. Сетевые нарушения должны регистрироваться, и должны быть приняты соответствующие мероприятия. Как вы видите, что FCAPS - это не просто "теоретический" метод, но он действительно описывает "что", "как" и "когда" мы будем делать. Какую бы модель обслуживания сети вы ни решили использовать, всегда есть ряд рутинных задач обслуживания, которые должны иметь перечисленные процедуры, вот несколько примеров: Изменения конфигурации: бизнес никогда не стоит на месте, он постоянно меняется. Иногда вам нужно внести изменения в сеть, чтобы разрешить доступ для гостевых пользователей, обычные пользователи могут перемещаться из одного офиса в другой, и для облегчения этой процедуры вам придется вносить изменения в сеть. Замена оборудования: старое оборудование должно быть заменено более современным оборудованием, и также возможна ситуация, когда производственное оборудование выйдет из строя, и нам придется немедленно заменить его. Резервные копии: если мы хотим восстановиться после сетевых проблем, таких как отказавшие коммутаторы или маршрутизаторы, то нам нужно убедиться, что у нас есть последние резервные копии конфигураций. Обычно вы используете запланированные резервные копии, поэтому вы будете сохранять текущую конфигурацию каждый день, неделю, месяц или в другое удобное для вас время. Обновления программного обеспечения: мы должны поддерживать ваши сетевые устройства и операционные системы в актуальном состоянии. Обновления позволяют исправлять ошибки ПО. Также обновление проводится для того, чтобы убедиться, что у нас нет устройств, на которых работает старое программное обеспечение, имеющее уязвимости в системе безопасности. Мониторинг: нам необходимо собирать и понимать статистику трафика и использования полосы пропускания, чтобы мы могли определить (будущие) проблемы сети, но также и планировать будущее расширение сети. Обычно вы создаете список задач, которые должны быть выполнены для вашей сети. Этим задачам можно присвоить определенный приоритет. Если определенный коммутатор уровня доступа выходит из строя, то вы, вероятно, захотите заменить его так быстро, как только сможете, но нерабочее устройство распределения или основного уровня будет иметь гораздо более высокий приоритет, поскольку оно влияет на большее число пользователей Сети. Другие задачи, такие как резервное копирование и обновление программного обеспечения, могут быть запланированы. Вы, вероятно, захотите установить обновления программного обеспечения вне рабочего времени, а резервное копирование можно запланировать на каждый день после полуночи. Преимущество планирования определенных задач заключается в том, что сетевые инженеры с меньше всего забудут их выполнить. Внесение изменений в вашу сеть иногда влияет на производительность пользователей, которые полагаются на доступность сети. Некоторые изменения будут очень важны, изменения в брандмауэрах или правилах списка доступа могут повлиять на большее количество пользователей, чем вы бы хотели. Например, вы можете установить новый брандмауэр и запланировать определенный результат защиты сети. Случайно вы забыли об определенном приложении, использующем случайные номера портов, и в конечном итоге устраняете эту проблему. Между тем некоторые пользователи не получат доступ к этому приложению (и возмущаются, пока вы пытаетесь его исправить...). Более крупные компании могут иметь более одного ИТ-отдела, и каждый отдел отвечает за различные сетевые услуги. Если вы планируете заменить определенный маршрутизатор завтра в 2 часа ночи, то вы можете предупредить парней из отдела "ИТ-отдел-2", о том, что их серверы будут недоступны. Для этого можно использовать управление изменениями. Когда вы планируете внести определенные изменения в сеть, то другие отделы будут проинформированы, и они могут возразить, если возникнет конфликт с их планированием. Перед внедрением управления изменениями необходимо подумать о следующем: Кто будет отвечать за авторизацию изменений в сети? Какие задачи будут выполняться во время планового технического обслуживания windows, linux, unix? Какие процедуры необходимо соблюдать, прежде чем вносить изменения? (например: выполнение "copy run start" перед внесением изменений в коммутатор). Как вы будете измерять успех или неудачу сетевых изменений? (например: если вы планируете изменить несколько IP-адресов, вы запланируете время, необходимое для этого изменения. Если для перенастройки IP-адресов требуется 5 минут, а вы в конечном итоге устраняете неполадки за 2 часа, так как еще не настроили. Из-за этого вы можете "откатиться" к предыдущей конфигурации. Сколько времени вы отводите на устранение неполадок? 5 минут? 10 минут? 1 час? Как, когда и кто добавит сетевое изменение в сетевую документацию? Каким образом вы создадите план отката, чтобы в случае непредвиденных проблем восстановить конфигурацию к предыдущей конфигурации? Какие обстоятельства позволят отменить политику управления изменениями? Еще одна задача, которую мы должны сделать - это создать и обновить вашу сетевую документацию. Всякий раз, когда разрабатывается и создается новая сеть, она должна быть задокументирована. Более сложная часть состоит в том, чтобы поддерживать ее в актуальном состоянии. Существует ряд элементов, которые вы должны найти в любой сетевой документации: Физическая топологическая схема (физическая карта сети): здесь должны быть показаны все сетевые устройства и то, как они физически связаны друг с другом. Логическая топологическая схема (логическая карта сети): здесь необходимо отобразить логические связи между устройствами, то есть как все связано друг с другом. Показать используемые протоколы, информация о VLAN и т. д. Подключения: полезно иметь диаграмму, которая показывает, какие интерфейсы одного сетевого устройства подключены к интерфейсу другого сетевого устройства. Инвентаризация: вы должны провести инвентаризацию всего сетевого оборудования, списков поставщиков, номера продуктов, версии программного обеспечения, информацию о лицензии на программное обеспечение, а также каждое сетевое устройство должно иметь инвентарный номер. IP-адреса: у вас должна быть схема, которая охватывает все IP-адреса, используемые в сети, и на каких интерфейсах они настроены. Управление конфигурацией: перед изменением конфигурации мы должны сохранить текущую запущенную конфигурацию, чтобы ее можно было легко восстановить в предыдущую (рабочую) версию. Еще лучше хранить архив старых конфигураций для дальнейшего использования. Проектная документация: документы, которые были созданы во время первоначального проектирования сети, должны храниться, чтобы вы всегда могли проверить, почему были приняты те или иные проектные решения. Это хорошая идея, чтобы работать с пошаговыми рекомендациями по устранению неполадок или использовать шаблоны для определенных конфигураций, которые все сетевые администраторы согласны использовать. Ниже показаны примеры, чтобы вы понимали, о чем идет речь: interface FastEthernet0/1 description AccessPoint switchport access vlan 2 switchport mode access spanning-tree portfast Вот пример интерфейсов доступа, подключенных к беспроводным точкам доступа. Portfast должен быть включен для связующего дерева, точки доступа должны быть в VLAN 2, а порт коммутатора должен быть изменен на "доступ" вручную. interface FastEthernet0/2 description VOIP interface FastEthernet0/2 description ClientComputer switchport access vlan 6 switchport mode access switchport port-security switchport port-security violation shutdown switchport port-security maximum 1 spanning-tree portfast spanning-tree bpduguard enable Вот шаблон для интерфейсов, которые подключаются к клиентским компьютерам. Интерфейс должен быть настроен на режиме "доступа" вручную. Безопасность портов должна быть включена, поэтому допускается только 1 MAC-адрес (компьютер). Интерфейс должен немедленно перейти в режим переадресации, поэтому мы настраиваем spanning-tree portfast, и, если мы получаем BPDU, интерфейс должен перейти в err-disabled. Работа с предопределенными шаблонами, подобными этим, уменьшит количество ошибок, потому что все согласны с одной и той же конфигурацией. Если вы дадите каждому сетевому администратору инструкции по ""защите интерфейса", вы, вероятно, получите 10 различных конфигураций interface GigabitEthernet0/1 description TRUNK switchport trunk encapsulation dot1q switchport mode trunk switchport trunk nonegotiate Вот еще один пример для магистральных соединений. Если вы скажете 2 сетевым администраторам "настроить магистраль", вы можете в конечном итоге получить один интерфейс, настроенный для инкапсуляции 802.1Q, а другой-для инкапсуляции ISL. Если один сетевой администратор отключил DTP, а другой настроил интерфейс как "dynamic desirable", то он также не будет работать. Если вы дадите задание им настроить магистраль в соответствии с шаблоном, то у нас будет одинаковая конфигурация с обеих сторон.
img
В этом руководстве узнаем, как настроить сервер Nginx для производственной среды. Тестовый веб-сервер отличается от рабочего сервера в планах безопасности и производительности. По умолчанию, веб-сервер Ngnix готов к работе сразу после установки. Тем не менее, настройки по умолчанию недостаточны для рабочего севера. Поэтому мы сфокусируемся на настройке сервера для большей производительности в случае высокой и нормальной нагрузки, а также на настройках безопасности в целях защиты от любопытного пользователя. Если у вас не установлен веб-сервер, можете узнать, как сделать это перейдя по ссылке. Здесь показано как установить Ngnix на Unix платформы. Рекомендуется выбирать установку из исходного кода, так как обычный релиз не включает некоторые модули, используемые в этом руководстве. Настройка производительности и безопасности Nginx Требования У вас должны быть установлены нижеследующие компоненты и убедитесь, что веб-сервер запущен на системе на базе Debian, например Ubuntu. Ubuntu или любая система семейства Debian wget Vim (текстовый редактор) Также имейте ввиду, что некоторые команды из этого руководства придется запускать от имени привилегированного пользователя пользуясь командой sudo. Разбор структуры конфигурации Nginx В этом разделе рассмотрим следующие вопросы: Структура Nginx Разделы событий, HTTP и Mail Правильный синтаксис Nginx В конце раздела узнаете об структуре конфигурационного файла Nginx, роль и назначение каждого раздела и как задавать директивы внутри разделов. Весь файл конфигурации Nginx разделен на такие разделы, как event section, http section, mail section и т.д. Основной конфигурационный файл расположен по пути /etc/ngnix/ngnix.conf, а другие - /etc/nginx. Основная секция В этой секции расположены директивы, для которых нет специальных разделов. Такие директивы как user nginx, worker_processes 1, error_log /var/log/nginx/error.log warn, pid /var/run/nginx.pid могут быть расположены в этом разделе. Но некоторые из этих директив могут быть в секции event, например werker_processes. Разделы (Секции) В Nginx разделы используются для определения конфигурации разных модулей. Например, секция http section содержит настройки ngx_http_core module, секция even section определяет настройки ngx_event module, а секция mail хранит настройки модуля ngx_mail module. Список доступных разделов можно просмотреть по этой ссылке. Директивы Директивы в Nginx состоят из имени переменной и ряда аргументов. Например, директива worker_processes – имя переменной, а auto – значение: worker_processes auto; В конце каждой директивы обязательно нужно поставить точку с запятой ; Наконец, файл конфигурации Nginx должен соответствовать определенному набору правил. Ниже приведен допустимый синтаксис конфигурации Nginx: Директивы начинаются с имени переменной, а затем следуют один или несколько аргументов Директивы заканчиваются точкой с запятой ; Разделы определяются фигурными скобками {} Раздел может быть внутри другого раздела Конфигурация вне любого раздела является частью глобальной конфигурации Nginx. Строки, начинающиеся со знака #, являются комментариями. Настройка производительности Nginx В этой части мы сконфигурируем Nginx для лучшей работы как во время интенсивного трафика, так и во время пиковой нагрузки. Будут рассмотрены следующие настройки: Workers Активность Ввода/вывода диска Сетевой активности Буферов Сжатия Кеширования Времени ожидания Итак, в терминале введите следующую команду, чтобы перейти в директорию nginx и показать ее содержимое: cd nginx && ls Найдите папку conf. В этой папке и находится файл nginx.conf. Мы используем этот файл для настройки Nginx. Теперь, чтобы перейти в папку conf и открыть файл nginx.conf с помощью редактора vim, выполните следующие команды: cd conf sudo vim nginx.conf Ниже на скриншоте показан как выглядит файл nginx.conf Workers Чтобы улучшить работу веб-сервера Nginx нужно настроить должным образом так называемые воркеры. Это своего рода потоки ядра, которые управляют параллельным выполнением процессов. Настройка воркеров дает возможность эффективней обрабатывать запросы клиентов. Если все еще не закрыли vim, нажмите i чтобы перейти к режиму редактирования nginx.conf. Скопируйте и вставьте код указанный ниже в раздел events: events { worker_processes auto; worker_connections 1024; worker_rlimit_nofile 20960; multi_accept on; mutex_accept on; mutex_accept_delay 500ms; use epoll; epoll_events 512; } worker_processes: Эта директива регулирует количество воркеров в Nginx. Значение этой директивы устанавливается на auto, чтобы разрешить Nginx определять количество доступных ядер, дисков, загрузки сервера и сетевой подсистемы. Однако можно определить количество ядер, выполнив команду lscpu на терминале. worker_connections: Эта директива задает значение количества одновременных подключений, которые могут быть открыты воркером. Значение по умолчанию - 512, но здесь оно установлено 1024, что позволяет одному воркеру одновременно принимать соединение от клиента. worker_rlimit_nofile: Эта директива как-то связана с worker_connections. Для обработки большого одновременного соединения устанавливается большое значение. multi_accept: Эта директива позволяет воркеру принимать множество соединений в очереди одновременно. Очередь в этом контексте просто означает последовательность объектов данных, ожидающих обработки. mutex_accept: Эта директива отключена по умолчанию. Но поскольку мы настроили много работников в Nginx, мы должны включить его, как показано в коде выше, чтобы позволить работникам принимать новые соединения один за другим. mutex_accept_delay: Эта директива определяет время ожидания воркера перед принятием нового подключения. После включения accept_mutex воркеру назначается блокировка mutex на период, указанный в accept_mutex_delay. По истечении этого периода следующий воркер готов принять новые подключения. use: Эта директива указывает метод обработки подключения от клиента. В этом руководстве мы решили установить значение epoll, потому что мы работаем на платформой Ubuntu. Метод epoll является наиболее эффективным методом обработки для платформ Linux. epoll_events: Значение этой директивы указывает количество событий, которые Nginx передаст ядру. Чтение/запись диска В этом разделе мы настроим асинхронные операции ввода-вывода в Nginx для обеспечения эффективной передачи данных и повышения эффективности кэширования. Дисковый ввод-вывод относится к операциям записи и чтения между жестким диском и ОЗУ. Мы будем использовать функцию sendfile() внутри ядра для отправки небольших файлов. Для задания директив можно использовать http section, location section и server section. location section и server section могут быть вложены в разделе http section, чтобы сделать конфигурацию более читабельной. Скопируйте и вставьте следующий код в location section, расположенный в http section: location /pdf/ { sendfile on; aio on; } location /audio/ { directio 4m directio_alignment 512 } Sendfile: Чтобы использовать ресурсы операционной системы, установите для этой директивы значение on. Sendfile передает данные между дескрипторами файлов в пространстве ядра ОС, не отправляя их в буферы приложений. Эта директива будет использоваться для обслуживания небольших файлов. Directio: Эта директива повышает эффективность кэширования, позволяя выполнять чтение и запись непосредственно в приложение. Directio - это функция файловой системы каждой современной операционной системы. Эта директива будет использоваться для обслуживания больших файлов, например видео. Aio: Эта директива обеспечивает многопоточность для операций записи и чтения. Многопоточность - это модель выполнения, позволяющая выполнять несколько потоков отдельно друг от друга при совместном использовании ресурсов процесса хостинга. directio_alignment: В этой директиве для переноса данных назначается значение размера блока. Она касалась директивы directio. Сетевой уровень В этом разделе мы используем такие директивы, как tcp_nodelay и tcp_nopush, чтобы небольших пакеты не ждали в очереди перед отправкой. Обычно, когда пакеты передаются в "частях", они имеют тенденцию заполнять высоконагруженную сеть. Джон Нагл построил алгоритм буферизации для решения этой проблемы. Целью алгоритма буферизации Nagle является предотвращение заполнения высоконагруженной сети небольшими пакетами. Скопируйте и вставьте следующий код в раздел HTTP: http { tcp_nopush on; tcp_nodelay on; } tcp_nodelay: Эта директива по умолчанию отключена, чтобы позволить небольшим пакетам ждать указанный период времени, прежде чем они будут отправлены одновременно. Для немедленной отправки всех данных эта директива включена. tcp_nopush: Поскольку tcp_nodelay директива включена, небольшие пакеты отправляются одновременно. Однако, если вы все еще хотите использовать алгоритм буферизации Джона Нагле, мы также можем включить tcp_nopush, чтобы собрать пакеты в одну пачку и отправлять их все одновременно. Буфер Рассмотрим, как настроить буферы запросов в Nginx для эффективной обработки запросов. Буфер - это временное хранилище, где данные хранятся в течение некоторого времени и обрабатываются. Можно скопировать код указанный ниже в раздел server. server { client_body_buffer_size 8k; client_max_body_size 2m; client_body_in_single_buffer on; client_body_temp_pathtemp_files 1 2; client_header_buffer_size 1m; large_client_header_buffers 4 8k; } Важно четко понимать, функции указанных директив client_body_buffer_size: Эта директива задает размер буфера для тела запроса. Если планируется запустить веб-сервер на 64-разрядных системах, необходимо установить значение 16k. Если требуется запустить веб-сервер в 32-разрядной системе, установите значение 8k. client_max_body_size: Если вы собираетесь обрабатывать большие загрузки файлов, необходимо установить для этой директивы значение не менее 2m или более. По умолчанию установлено значение 1m. client_body_in_file_only: Если вы отключили директиву, закомментировав ее client_body_buffer_size, а директива client_body_in_file_only включена, Nginx будет сохранять буферы запросов во временный файл. Это не рекомендуется для производственной среды. client_body_in_single_buffer: Иногда не все тело запроса хранится в буфере. Остальная часть сохраняется или записывается во временный файл. Однако если предполагается сохранить или хранить все запросы в буфер запросов в одном буфере, необходимо включить эту директиву. client_header_buffer_size: Эту директиву можно использовать чтобы дать заголовков запросов доступ к буферу. Это значение можно задать равным 1m. large_client_header_buffers: Эта директива используется для задания максимального количества и размера для чтения заголовков больших запросов. Максимальное число и размер буфера можно точно установить в 4 и 8k. Сжатие Еще одним способом оптимизации работы веб-сервера является сжатие объема данных, передаваемых по сети, является. В этом разделе мы используем директивы, такие как gzip, gzip_comp_level, и gzip_min_length, чтобы сжать данные. Вставьте следующий код в раздел http, как показано ниже: http { gzip on; gzip_comp_level 2; gzip_min_length 1000; gzip_types text/xml text/css; gzip_http_version 1.1; gzip_vary on; gzip_disable "MSIE [4-6] ."; } gzip: Если требуется включить сжатие ответа, установите значение этой директивы в on. По умолчанию он отключен. gzip_comp_level: Эту директиву можно использовать для установки степени сжатия ответа. Чтобы не тратить ресурсы ЦП, не нужно устанавливать слишком высокий уровень сжатия. По шкале от 1 до 9 лучше установить уровень сжатия 2 или 3. gzip_min_length: Устанавливает минимальную длину ответа, который будет сжиматься методом gzip. Длина определяется только из поля content-length заголовка ответа. Можно установить значение более 20 байт. gzip_types: Эта директива разрешает сжатие ответа методом gzip для указанных MIME-типов. По умолчанию, тип text/html всегда сжимается. Можно добавить другой тип, например, text/css, как показано в коде выше gzip_http_version: Эта директива позволяет выбрать минимальную HTTP-версию запроса, необходимую для сжатия ответа. Можно использовать значение по умолчанию 1.1. gzip_vary: Разрешает или запрещает выдавать в ответе поле заголовка Vary: Accept Encoding, если директива gzip включена. gzip_disable: Некоторые браузеры, такие как Internet Explorer 6, не поддерживают сжатие gzip. Эта директива использует поле User-Agent заголовка для отключения сжатия методом gzip для определенных браузеров. Кеширование Используйте функции кэширования, чтобы сократить количество обращений для многократной загрузки одних и тех же данных. Nginx предоставляет функции кэширования метаданных статического содержимого через директиву open_file_cache. Эту директиву можно поместить в разделы server, location и http: http { open_file_cache max=1,000 inactive=30s; open_file_cache_valid 30s; open_file_cache_min_uses 4; open_file_cache_errors on; } open_file_cache: Эта директива по умолчанию отключена. Включите его, если требуется внедрить кэширование в Nginx. В нем могут храниться дескрипторы открытых файлов, информация об их размерах и времени модификации, информация о существовании каталогов, информация об ошибках поиска файла — “нет файла”, “нет прав на чтение” open_file_cache_valid: Эта директива определяет время, через которое следует проверять актуальность информации об элементе в open_file_cache. open_file_cache_min_uses: Задаёт минимальное число обращений к файлу в течение времени, заданного параметром inactive директивы open_file_cache, необходимых для того, чтобы дескриптор файла оставался открытым в кэше. open_file_cache_errors: Эту директиву можно использовать, чтобы разрешить Nginx кэшировать ошибки, такие как “нет файла”, “нет прав на чтение” при доступе к файлам. Таким образом, каждый раз, когда к ресурсу обращается пользователь, не имеющий на это права, Nginx отображает тот же самый отчет об ошибке «в доступе отказано» Время ожидания Настройте время ожидания, используя директивы, такие как keepalive_timeout и keepalive_requests, чтобы предотвратить растрачивание ресурсов при длительном ожидании подключений. В разделе HTTP скопируйте и вставьте следующий код: http { keepalive_timeout 30s; keepalive_requests 30; send_timeout 30s; } keepalive_timeout: Сохраняйте связь в течение 30 секунд. Значение по умолчанию - 75 секунд. keepalive_requests: Настройка количества запросов для поддержания активности в течение определенного времени. Количество запросов можно задать равным 20 или 30. keepalive_disable: если вы хотите отключить поддержку keepalive для определенной группы браузеров, используйте эту директиву. send_timeout: Установка времени ожадания для передачи данных клиенту. Настройки безопасности Nginx В этой части рассматриваются только способы настройки безопасности самого Nginx, а не веб-приложения. Мы не будем разбирать такие методы веб-атаки, как инъекция SQL и так далее. Здесь мы рассмотрим настройки следующих параметров: Ограничение доступа к файлам и каталогам Настройка журналов для мониторинга подозрительных действий Защиту от DDoS атак Отключение вывода списка файлов и директорий Ограничение доступа к файлам и каталогам Давайте рассмотрим как можно ограничить доступ к важным и чувствительным файлам системы с помощью следующих методов. Использование HTTP Аутентификации С ее помощью мы можем ограничить доступ к конфиденциальным файлам или разделам системы, не предназначенных для публичного доступа, запросив аутентификацию у пользователей или даже администраторов. Выполните следующую команду, чтобы установить утилиту создания файлов паролей, если она не установлена. apt-get install -y apache-utils Далее создайте файл паролей и пользователя с помощью утилиты htpasswd. htpasswd входит в набор утилит apache2-utils. sudo htpasswd -c /etc/apache2/ .htpasswd mike Проверить результат работы можно командой: cat etc/apache2/ .htpasswd Скопируйте и вставьте следующий код в разделе location: location /admin { basic_auth "Admin Area"; auth_basic_user_file /etc/apache2/ .htpasswd; } Используя директиву Allow В дополнение к директиве basic_auth мы можем использовать директиву allow для ограничения доступа к указанным каталогам. Чтобы разрешить доступ как конкретным каталогам только с указанных адресов вставьте нижеследующий код в раздел location: location /admin { allow 192.168.34.12; allow 192.168.12.34; } Настройка журналирования подозрительных действий В этом разделе настроим error и access логи, чтобы вести мониторинг запросов. Их можно использовать для определения кто заходил систему в указанный период времени или какой пользователь открывал конкретный файл и т.д. error_log: Позволяет настроить запись событий в определенный файл, например syslog или stderr. Можно также указать уровень журналирования, которые требуется записывать. access_log: Позволяет регистрировать запросы пользователей в файле access.log Для этого в разделе http введите следующие изменения: http { access_log logs/access.log combined; error_log logs/warn.log warn; } Предотвращение DDoS атак DDoS атаки один из самых легкореализуемых и потому часто применяемых видов атак. Защитить свой веб-сервер от атак такого вида можно поменяв следующие настройки. Ограничение запросов пользователей Для ограничения числа запросов от пользователей можно использовать директивы limit_req_zone и limit_req. Следующий код нужно добавить в раздел location, который вложен в раздел server limit_req_zone $binary_remote_addr zone=one:10m rate=30r/m; server { location /admin.html { limit_req zone=one; } } Ограничение на число подключений Директивы limit_conn и limit_conn_zone можно использовать для ограничения числа подключение к конкретным зонам. Например, код указанный ниже ограничивает число подключений десятью. Код должен располагаться в разделе location раздела server server { location /products/ { limit_conn addr 10; } } Разрыв медленных соединений Директива как client_body_timeout задаёт таймаут при чтении тела запроса клиента. Таймаут устанавливается не на всю передачу тела запроса, а только между двумя последовательными операциями чтения. Если по истечении этого времени клиент ничего не передаст, обработка запроса прекращается с ошибкой 408 (Request Time-out). А client_header_timeout задаёт таймаут при чтении заголовка запроса клиента. Если по истечении этого времени клиент не передаст полностью заголовок, обработка запроса прекращается с ошибкой 408 (Request Time-out). Добавьте следующее в раздел server. server { client_body_timeout 5s; client_header_timeout 5s; } Отключение вывода списка директорий Чтобы отключить вывод директорий на странице можно использовать директиву auto_index. Она располагается в разделе location, а значение должно быть установлено в off. location / { auto_index off; } Заключение Итак, в этом руководстве показали, как можно настроить веб-сервер Nginx для более безопасной и оптимальной работы. На этом, конечно, работа не заканчивается. Если на Nginx крутится какое-то приложение с доступом в Интернет, то можно прибегнуть к облачным решениям защиты и оптимизации.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59