뚠뚠멍의 생각들

Основные настройки nginx в качестве веб-сервера

  • Язык написания: Корейский
  • Страна: Все страныcountry-flag
  • ИТ

Создано: 2024-09-26

Создано: 2024-09-26 21:20

Nginx — это сервер с открытым исходным кодом, часто используемый в качестве веб-сервера или веб-прокси-сервера.

При правильной настройке он может эффективно предоставлять статический контент.

В этой статье я хочу записать некоторые основные настройки.


Несколько основных настроек, связанных с производительностью

1. Сжатие gzip

При загрузке веб-сайта браузер получает множество файлов от веб-сервера: JavaScript, изображения, HTML, CSS и другие.

Вместо отправки этого контента в исходном виде, использование сжатия gzip может значительно уменьшить объем передаваемых данных.


Таким образом, при его применении:

- уменьшается объем данных, что экономит полосу пропускания.

- можно сэкономить ресурсы сервера.

- для пользователя фактическая скорость загрузки увеличивается.


С другой стороны, поскольку сервер должен выполнить сжатие gzip перед отправкой ответа, загрузка процессора может увеличиться.

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


Ниже приведены некоторые настройки, связанные с gzip.

* gzip_vary указывает, что сервер может отправлять сжатую и несжатую версии контента в зависимости от того, поддерживает ли клиент gzip (в зависимости от заголовка Accept-Encoding в запросе клиента).


2. Настройка proxy_buffer

Nginx сохраняет ответ в буфере перед отправкой клиенту.

Когда веб-сервер отправляет ответ клиенту, если клиент работает медленно, сервер должен ждать отправки данных (узкое место в сети).

В это время сервер продолжает использовать ресурсы. Для решения этой проблемы используется буфер для временной обработки ответа независимо от скорости обработки клиента. Это дает следующие преимущества:

- Оптимизация нагрузки на сервер

- Уменьшение узких мест в сети

※ Слишком большой размер буфера может привести к задержкам при потоковой передаче текста (text streaming) и других потоковых данных. Поэтому обязательно нужно провести тестирование. Особенно важно это учитывать для современных сервисов на основе ИИ, где отсутствие потоковой передачи текста может быть критичным.


3. Настройка worker и http

Worker — это процесс, обрабатывающий запросы клиентов. Можно настроить, сколько worker-ов будет на каждый процессорный ядро сервера.

Обычно HTTP-запрос включает этапы: запрос — соединение — ответ — закрытие соединения. Для уменьшения ресурсов, используемых для установления соединения, можно поддерживать клиентское соединение. Это настройка keep alive.

Причина объединения этих двух пунктов:

Если на сервере 4 ядра, теоретически возможное количество соединений составляет 1024 * 4 = 4096.

(Это значение может быть неточным в зависимости от ресурсов и сетевого трафика)

Когда 4096 клиентов одновременно подключены и используют keepalive в течение 65 секунд,

4097-й пользователь не сможет подключиться, что может привести к задержке ответа.


Поэтому, предполагая стабильность ресурсов сервера (например, за счет автомасштабирования), если наблюдаются задержки ответа во время пиковых нагрузок, эти настройки могут оказывать косвенное влияние.


4. Другое — блок location

Некоторые настройки, такие как proxy_buffer, можно применять к отдельным URL-адресам.

* Некоторые настройки, такие как keep-alive, применяются на уровне HTTP/Server и не могут быть настроены поблочно.

server {
listen 80;
server_name example.com;


С помощью этих настроек можно оптимизировать производительность веб-сайта. Проведите тщательное тестирование с различными сценариями, чтобы оптимизировать производительность вашего сервера!

* Изменение настроек nginx обычно может быть применено без простоя сервера, поэтому в большинстве случаев это безопасно.






Комментарии0

Использование Google Cloud Storage и Cloud Run для CDN — часть 2Вторая статья о том, как создать CDN с помощью Google Cloud Storage и Cloud Run. В ней описывается, как оптимизировать передачу изображений и текстовых файлов, а также как снизить задержку, распространив ресурсы по 8 регионам мира.
두루미스 기술 블로그
두루미스 기술 블로그
두루미스 기술 블로그
두루미스 기술 블로그

September 6, 2024

[DB] Критерии настройки кэшаВ данной статье рассматриваются критерии настройки кэша базы данных и примеры практического применения. Мы расскажем о том, как кэшировать данные, которые часто читаются, но редко записываются, а также о методах поддержания актуальности данных с помощью н
제이온
제이온
제이온
제이온

April 25, 2024

[Для неспециалистов, выживание разработчика] 14. Краткое изложение часто задаваемых вопросов на техническом собеседовании для начинающих разработчиковМы обобщили и систематизировали часто задаваемые технические вопросы на собеседовании для начинающих разработчиков (области памяти, структуры данных, базы данных и т. д.). Надеемся, что это поможет вам подготовиться к собеседованию по разработке.
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

April 3, 2024

Оптимизация и синхронизация изображений с помощью Google Cloud Storage и Cloud Run — Часть 3В этой статье мы рассмотрим, как оптимизировать изображения и синхронизировать их по различным регионам с помощью Google Cloud Storage и Cloud Run. Мы подробно остановимся на реализации функций преобразования, копирования и удаления файлов изображений.
두루미스 기술 블로그
두루미스 기술 블로그
두루미스 기술 블로그
두루미스 기술 블로그

September 8, 2024