Тема
- #настройка nginx
Создано: 2024-09-26
Создано: 2024-09-26 21:20
Nginx — это сервер с открытым исходным кодом, часто используемый в качестве веб-сервера или веб-прокси-сервера.
При правильной настройке он может эффективно предоставлять статический контент.
В этой статье я хочу записать некоторые основные настройки.
При загрузке веб-сайта браузер получает множество файлов от веб-сервера: JavaScript, изображения, HTML, CSS и другие.
Вместо отправки этого контента в исходном виде, использование сжатия gzip может значительно уменьшить объем передаваемых данных.
Таким образом, при его применении:
- уменьшается объем данных, что экономит полосу пропускания.
- можно сэкономить ресурсы сервера.
- для пользователя фактическая скорость загрузки увеличивается.
С другой стороны, поскольку сервер должен выполнить сжатие gzip перед отправкой ответа, загрузка процессора может увеличиться.
Необходимо обязательно провести тестирование перед внедрением в рабочую среду, чтобы определить, какие типы файлов следует сжимать, уровень сжатия и размер файлов для сжатия.
Ниже приведены некоторые настройки, связанные с gzip.
* gzip_vary указывает, что сервер может отправлять сжатую и несжатую версии контента в зависимости от того, поддерживает ли клиент gzip (в зависимости от заголовка Accept-Encoding в запросе клиента).
Nginx сохраняет ответ в буфере перед отправкой клиенту.
Когда веб-сервер отправляет ответ клиенту, если клиент работает медленно, сервер должен ждать отправки данных (узкое место в сети).
В это время сервер продолжает использовать ресурсы. Для решения этой проблемы используется буфер для временной обработки ответа независимо от скорости обработки клиента. Это дает следующие преимущества:
- Оптимизация нагрузки на сервер
- Уменьшение узких мест в сети
※ Слишком большой размер буфера может привести к задержкам при потоковой передаче текста (text streaming) и других потоковых данных. Поэтому обязательно нужно провести тестирование. Особенно важно это учитывать для современных сервисов на основе ИИ, где отсутствие потоковой передачи текста может быть критичным.
Worker — это процесс, обрабатывающий запросы клиентов. Можно настроить, сколько worker-ов будет на каждый процессорный ядро сервера.
Обычно HTTP-запрос включает этапы: запрос — соединение — ответ — закрытие соединения. Для уменьшения ресурсов, используемых для установления соединения, можно поддерживать клиентское соединение. Это настройка keep alive.
Причина объединения этих двух пунктов:
Если на сервере 4 ядра, теоретически возможное количество соединений составляет 1024 * 4 = 4096.
(Это значение может быть неточным в зависимости от ресурсов и сетевого трафика)
Когда 4096 клиентов одновременно подключены и используют keepalive в течение 65 секунд,
4097-й пользователь не сможет подключиться, что может привести к задержке ответа.
Поэтому, предполагая стабильность ресурсов сервера (например, за счет автомасштабирования), если наблюдаются задержки ответа во время пиковых нагрузок, эти настройки могут оказывать косвенное влияние.
Некоторые настройки, такие как proxy_buffer, можно применять к отдельным URL-адресам.
* Некоторые настройки, такие как keep-alive, применяются на уровне HTTP/Server и не могут быть настроены поблочно.
server {
listen 80;
server_name example.com;
С помощью этих настроек можно оптимизировать производительность веб-сайта. Проведите тщательное тестирование с различными сценариями, чтобы оптимизировать производительность вашего сервера!
* Изменение настроек nginx обычно может быть применено без простоя сервера, поэтому в большинстве случаев это безопасно.
Комментарии0