Конфигурация nginx

Конфигурация nginx

    Директивы nginx
    worker_processes auto ; worker_priority -2 ; worker_connections 1024 ;

    worker_processes - по умолчанию равен 1, в автоматическом режиме кол-во зависит от кол-ва ядер процессора, следует использовать значение auto
    worker_priority - приоритет рабочих процессов, от -20 до 20, чем ниже, тем больше приоритет, более высокий приоритет следует отдавать при сильной нагрузке на скрипты сайта или ddos
    worker_connections - число возможных соединений ( рабочих процессов ), остальные процессы будут ждать своей очереди

    Использование proxy server
    location / { proxy_pass http://localhost:8080/; }

    Настройка проксирования FastCGI:
    fastcgi_pass вместо директивы proxy_pass
    fastcgi_pass unix: | host | ip
    Например:
    fastcgi_pass unix:/tmp/fastcgi.socket;
    fastcgi_pass localhost:9000;
    fastcgi_pass 192.168.1.1:9000;
    fastcgi_param это параметры которые передаются fastcgi серверу:
    Простые директивы заканчиваются точкой с запятой ;
    Другие директивы действуют как контейнеры, называемые блоками
    Файлы конфигурации разделены на файлы и храниться в /etc/nginx/conf.d и использоваться с помощью директивы include

    Настройки timeout

    fastcgi_read_timeout - fastcgi_read_timeout — директива веб-сервера Nginx, которая задаёт количество секунд ожидания ответа от FastCGI-сервера
    proxy_read_timeout - определяет, как долго Nginx ожидает ответа от вышестоящего сервера
    proxy_connect_timeout - устанавливает время ожидания Nginx при подключении к вышестоящему серверу
    proxy_send_timeout - устанавливает время ожидания Nginx при отправке запроса на вышестоящий сервер
    Нельзя забывать про настройки производительности вышестоящего сервера, в данном случае речь идет о настройках php и postgresql
    Это может включать в себя ускорение запросов к базе данных, кэширование данных или добавление дополнительных ресурсов сервера для обработки более высоких нагрузок.
    Можно использовать кэширование кодов операций для PHP, улучшить код своего приложения и более эффективно разрабатывать API


    Альтернативным решением будет настройка параметра keepalive_timeout, который может помочь уменьшить количество ошибок, связанных с тайм-аутом. Этот параметр определяет, как долго Nginx будет поддерживать открытые соединения в режиме ожидания
    Значение keepalive_timeout должно быть сбалансированным. Слишком высокое значение может привести к большому количеству неиспользуемых соединений, что использует ресурсы сервера.
    Слишком низкое значение может привести к открытию большего числа соединений для каждого запроса, что увеличит накладные расходы.

    Использование proxy_http_version 1.1 и proxy_set_header помогает поддерживать соединения между Nginx и вышестоящими серверами.
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    Эти настройки позволяют Nginx повторно использовать соединения, сокращая количество создаваемых новых соединений и, возможно, уменьшая количество ошибок, связанных с тайм-аутом

    send_timeout - определяет, сколько времени сервер будет ждать, пока клиент отправит весь запрос

    client_body_timeout - определяет время ожидания тела запроса от клиента. Если в течение этого времени клиент не передаёт данные, соединение разрывается с ошибкой 408 (Request Time-out)

    Чтобы понять к какой директиве относится ошибка, стоит обратить какой вышестоящий сервер упомянут в ошибке, например прокси upstream: "http://my-awesome-proxy" или fastcgi upstream: "fastcgi://127.0.0.1:9000"

    Источник 1: https://www.uptimia.com/questions/how-to-solve-110-connection-timed-out-while-reading-response-header-from-upstream-nginx-error#:~:text=The%20%22(110%3A%20Connection%20timed%20out),website%20when%20this%20error%20occurs
    Источник 2:

    Часто встречаемые ошибки в логах NGINX
    Operation timed out

    upstream timed out (110: Operation timed out) while reading response header from upstream, client: 192.168.***.***, server: *************.ru, request: "GET **********:197 HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fastcgi.sock", host:
    При возникновении этой ошибки пользователи могут наблюдать медленную загрузку страниц или не иметь доступа к некоторым частям веб-сайта.
    Решением данной проблемы может стать настройка параметров тайм-аута Nginx
    Чаще всего проблему решают изменение значения директив: proxy_read_timeout, fastcgi_read_timeout
    Тайм-ауты 502/504 «Неверный шлюз» обычно связаны с тем, что Nginx ожидает ответа PHP-FPM, а PHP-FPM перегружен или не справляется с запросами, поэтому может потребоваться настройка значений PHP-FPM



    Источники
    Последнее изменение: 31.12.2024 15:20


    Связанные темы
    Здесь пока нет комментариев
    Добавлять комментарии могут только авторизованные пользователи

    Авторизоваться
    Я буду рекламой
    Я тоже буду рекламой
    И я
    ВВЕРХ