From 27a6fe4bb090d250925418052c62f0dbc0855a7e Mon Sep 17 00:00:00 2001 From: Constantine Karnaukhov Date: Mon, 23 Mar 2020 13:06:54 +0400 Subject: [PATCH] feat(nginx): add NGINX_READ_TIMEOUT setting --- .gitlab-ci.yml | 6 +++--- Dockerfile | 2 +- docs/configure.md | 1 + docs/nginx_configuration.md | 10 ++++++++++ spaceonfire/bin/entrypoint.sh | 12 ++++++++++++ 5 files changed, 27 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5778fa1..8da58b8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,9 +3,9 @@ stages: - latest variables: - PHP_7_2: 7.2.25 - PHP_7_3: 7.3.12 - PHP_7_4: 7.4.0 + PHP_7_2: 7.2.29 + PHP_7_3: 7.3.16 + PHP_7_4: 7.4.4 .build: &build stage: build diff --git a/Dockerfile b/Dockerfile index ba72dbf..b9c4bfa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG PHP_BASEIMAGE_VERSION=7.3.6 +ARG PHP_BASEIMAGE_VERSION=7.4.4 FROM php:${PHP_BASEIMAGE_VERSION}-fpm-alpine LABEL maintainer="Constantine Karnaukhov " diff --git a/docs/configure.md b/docs/configure.md index d27f855..d511152 100644 --- a/docs/configure.md +++ b/docs/configure.md @@ -17,6 +17,7 @@ | `PHP_ERRORS_STDERR` | Укажите "1", чтобы отправлять сообщения об ошибках PHP в логи контейнера | | `REAL_IP_HEADER` | Укажите "1", чтобы включить поддержку real ip в логах. Подробнее про [настройку Nginx](./nginx_configuration.md) | | `REAL_IP_FROM` | Укажите свой CIDR блок для real ip в логах. Подробнее про [настройку Nginx](./nginx_configuration.md) | +| `NGINX_READ_TIMEOUT` | Устанавливает настройку `fastcgi_read_timeout`. Подробнее про [настройку Nginx](./nginx_configuration.md) | | `RUN_SCRIPTS` | Укажите "1" для выполнения скриптов из `/var/www/html/scripts` перед запуском веб-сервера | | `PGID` | Укажите свой GroupId для пользователя nginx ([помогает решить проблему с правами при монтировании локальных хранилищ](./uid_gid.md)) | | `PUID` | Укажите свой UserID для пользователя nginx ([помогает решить проблему с правами при монтировании локальных хранилищ](./uid_gid.md)) | diff --git a/docs/nginx_configuration.md b/docs/nginx_configuration.md index dd442c5..e936227 100644 --- a/docs/nginx_configuration.md +++ b/docs/nginx_configuration.md @@ -28,3 +28,13 @@ ``` docker run -d -e "REAL_IP_HEADER=1" -e "REAL_IP_FROM=10.1.0.0/16" spaceonfire/nginx-php-fpm:latest ``` + +## Read timeout + +Чтобы изменить таймаут чтения, укажите настройку `NGINX_READ_TIMEOUT` в переменных окружения, например: + +``` +docker run -d -e NGINX_READ_TIMEOUT=300 spaceonfire/nginx-php-fpm:latest +``` + +Для не продакшн окружений значение таймаута автоматически выставляется на `9999`. diff --git a/spaceonfire/bin/entrypoint.sh b/spaceonfire/bin/entrypoint.sh index 3bb23fe..79902e6 100644 --- a/spaceonfire/bin/entrypoint.sh +++ b/spaceonfire/bin/entrypoint.sh @@ -34,6 +34,18 @@ fi /opt/spaceonfire/bin/ssmtp-setup.php +# Set Nginx read timeout +if [[ -z "$NGINX_READ_TIMEOUT" ]] && [[ "$APPLICATION_ENV" != "production" ]]; then + NGINX_READ_TIMEOUT=9999 +fi + +if [[ ! -z "$NGINX_READ_TIMEOUT" ]]; then + { + echo "" + echo "fastcgi_read_timeout $NGINX_READ_TIMEOUT;" + } >> /etc/nginx/fastcgi_params +fi + # Prevent config files from being filled to infinity by force of stop and restart the container lastlinephpconf="$(grep "." /usr/local/etc/php-fpm.conf | tail -1)" if [[ $lastlinephpconf == *"php_flag[display_errors]"* ]]; then