Статьи

Руководство по Nginx: Основы

В первой части этой статьи о nginx рассказывалось об архитектуре и основном файле конфигурации nginx. Эта статья продолжается и рассказывает об основах nginx: необходимых модулях и других продвинутых методах настройки.

Настоящая сила nginx заключается в его модулях. Весь стек можно представить как составленный из модулей, которые расширяют или расширяют возможности ядра nginx. Чтобы использовать их, они должны быть включены во время компиляции из источника и не могут быть включены во время выполнения.

Некоторые модули автоматически компилируются, если не указано иное. Из них давайте взглянем на некоторые интересные и посмотрим, какие из них широко используются.

Доступ ( ngx_http_access_module ): это позволяет ограничить доступ к определенным IP-адресам.

1
2
3
4
5
6
7
location / {
    deny 192.168.1.1;
    allow 192.168.1.0/24;
    allow 10.1.1.0/16;
    allow 2001:0db8::/32;
    deny all;
}

HTTP Auth ( ngx_http_auth_basic_module ): позволяет ограничить доступ посредством HTTP Basic Auth (имя пользователя / пароль).

1
2
3
4
location / {
    auth_basic «password»;
    auth_basic_user_file conf/htpasswd;
}

Auth Subrequest ( ngx_http_auth_request_module ): реализует авторизацию клиента на основе результата подзапроса.

Ограничить соединения ( ngx_http_limit_conn_module ): позволяет определить максимальное количество одновременных соединений с одного IP-адреса.

Ограничение запросов ( ngx_http_limit_req_module ): ограничивает количество запросов с одного IP.

Большинство модулей, которые включены в nginx и могут быть включены во время компиляции, перечислены здесь очень подробно . Вместо этого давайте рассмотрим некоторые сторонние модули, которые могут быть действительно полезными.

Эти модули необходимо загрузить и затем скомпилировать с помощью nginx, как показано в следующей строке кода (при условии, что вы работаете в исходном каталоге nginx):

1
./configure —add-module=/path/to/module/source

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

Это модуль nginx, разработанный Google в рамках проекта PageSpeed . Очевидно, что цель состоит в том, чтобы улучшить время загрузки страницы с помощью модуля nginx, оптимизирующего трафик.

Вы можете установить этот модуль, следуя инструкции «Install ngx_pagespeed» . Этот модуль настоятельно рекомендуется для использования на ваших серверах!

Прямая трансляция, запись, онлайн-транскодирование, передовые методы буферизации. Это действительно легко начать использовать это .

Модуль потока http для nginx. Поддерживает EventSource Long Polling. Пример: WebSocket .

При использовании nginx также важно использовать следующие вспомогательные утилиты nginx:

  1. ngxtop : ngxtop анализирует журнал доступа nginx и выводит топические метрики сервера nginx.
  2. ngx_openresty : превращает nginx в полноценный сервер веб-приложений.
  3. настройки сервера : хранилище для фрагментов конфигурации nginx. Очень важно, когда вы только начинаете и хотите правильно настроить конфигурацию. Помогает вам начать с правильной конфигурации, чтобы улучшить производительность и безопасность веб-сайта, а также соответствующее использование ресурсов.
  4. lua-nginx-module : встраивает силу Lua в Nginx.
  5. h5ai : стоит исследовать. Современный индекс HTTP веб-сервера для Apache httpd, lighttpd, nginx и Cherokee.
  6. Коллекция ресурсов nginx .
  7. Как писать модули nginx .