В первой части этой статьи о 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 перечислены некоторые из известных сторонних модулей. Из всего этого давайте поговорим о модуле, который переписывает веб-страницы и связанные ресурсы, чтобы уменьшить задержку и пропускную способность.
ngx_pagespeed
Это модуль nginx, разработанный Google в рамках проекта PageSpeed . Очевидно, что цель состоит в том, чтобы улучшить время загрузки страницы с помощью модуля nginx, оптимизирующего трафик.
Вы можете установить этот модуль, следуя инструкции «Install ngx_pagespeed» . Этот модуль настоятельно рекомендуется для использования на ваших серверах!
Nginx-RTMP-модуль
Прямая трансляция, запись, онлайн-транскодирование, передовые методы буферизации. Это действительно легко начать использовать это .
Nginx-нажимной поток-модуль
Модуль потока http для nginx. Поддерживает EventSource Long Polling. Пример: WebSocket .
Другие предметы первой необходимости
При использовании nginx также важно использовать следующие вспомогательные утилиты nginx:
- ngxtop : ngxtop анализирует журнал доступа nginx и выводит топические метрики сервера nginx.
- ngx_openresty : превращает nginx в полноценный сервер веб-приложений.
- настройки сервера : хранилище для фрагментов конфигурации nginx. Очень важно, когда вы только начинаете и хотите правильно настроить конфигурацию. Помогает вам начать с правильной конфигурации, чтобы улучшить производительность и безопасность веб-сайта, а также соответствующее использование ресурсов.
- lua-nginx-module : встраивает силу Lua в Nginx.
- h5ai : стоит исследовать. Современный индекс HTTP веб-сервера для Apache httpd, lighttpd, nginx и Cherokee.
- Коллекция ресурсов nginx .
- Как писать модули nginx .