diff --git a/.env b/.env index f1e13fd3fa..2783a3e71b 100644 --- a/.env +++ b/.env @@ -15,7 +15,8 @@ SERVER_NAME=phraseanet-docker # --------------- GATEWAY TIMEOUT ----------------------- GATEWAY_SEND_TIMEOUT=120 - +GATEWAY_PROXY_TIMEOUT=120 +GATEWAY_FASTCGI_TIMEOUT=300 # --------------- PHP CONFIGURATION -------------------- # Max upload size @@ -26,6 +27,8 @@ MAX_INPUT_VARS=12000 MAX_EXECUTION_TIME=120 MAX_INPUT_TIME=60 +REQUEST_TERMINATE_TIMEOUT=300s + # Enable opcache ? (0/1) OPCACHE_ENABLED=1 # session cache limiter (off/on) diff --git a/docker-compose.yml b/docker-compose.yml index 6556872889..1a4dc6369c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -20,6 +20,8 @@ services: environment: - MAX_BODY_SIZE - GATEWAY_SEND_TIMEOUT + - GATEWAY_PROXY_TIMEOUT + - GATEWAY_FASTCGI_TIMEOUT ports: - ${PHRASEANET_APP_PORT}:80 @@ -43,6 +45,7 @@ services: - MAX_INPUT_VARS - MAX_EXECUTION_TIME - MAX_INPUT_TIME + - REQUEST_TERMINATE_TIMEOUT - OPCACHE_ENABLED - SESSION_CACHE_LIMITER - PHP_LOG_LEVEL diff --git a/docker/nginx/root/entrypoint.sh b/docker/nginx/root/entrypoint.sh index 4c9bbba5c8..983fc67a08 100755 --- a/docker/nginx/root/entrypoint.sh +++ b/docker/nginx/root/entrypoint.sh @@ -2,6 +2,6 @@ set -xe -cat /nginx.conf.sample | sed "s/\$MAX_BODY_SIZE/$MAX_BODY_SIZE/g" | sed "s/\$GATEWAY_SEND_TIMEOUT/$GATEWAY_SEND_TIMEOUT/g" > /etc/nginx/conf.d/default.conf - +cat /nginx.conf.sample | sed "s/\$MAX_BODY_SIZE/$MAX_BODY_SIZE/g" | sed "s/\$GATEWAY_SEND_TIMEOUT/$GATEWAY_SEND_TIMEOUT/g" | sed "s/\$GATEWAY_FASTCGI_TIMEOUT/$GATEWAY_FASTCGI_TIMEOUT/g" | sed "s/\$MAX_BODY_SIZE/$MAX_BODY_SIZE/g" | sed "s/\$GATEWAY_PROXY_TIMEOUT/$GATEWAY_PROXY_TIMEOUT/g" > /etc/nginx/conf.d/default.conf +cat /fastcgi_timeout.conf | sed "s/\$GATEWAY_FASTCGI_TIMEOUT/$GATEWAY_FASTCGI_TIMEOUT/g" >> /etc/nginx/fastcgi_params exec "$@" diff --git a/docker/nginx/root/etc/nginx/nginx.conf b/docker/nginx/root/etc/nginx/nginx.conf index 71a94ee98f..67bf3aa061 100755 --- a/docker/nginx/root/etc/nginx/nginx.conf +++ b/docker/nginx/root/etc/nginx/nginx.conf @@ -22,8 +22,6 @@ http { sendfile on; #tcp_nopush on; - keepalive_timeout 65; - #gzip on; include /etc/nginx/conf.d/*.conf; diff --git a/docker/nginx/root/fastcgi_timeout.conf b/docker/nginx/root/fastcgi_timeout.conf new file mode 100644 index 0000000000..ed244192b8 --- /dev/null +++ b/docker/nginx/root/fastcgi_timeout.conf @@ -0,0 +1,8 @@ +fastcgi_connect_timeout $GATEWAY_FASTCGI_TIMEOUT; +fastcgi_send_timeout $GATEWAY_FASTCGI_TIMEOUT; +fastcgi_read_timeout $GATEWAY_FASTCGI_TIMEOUT; +fastcgi_buffers 4 32k; +fastcgi_busy_buffers_size 32k; +fastcgi_temp_file_write_size 32k; +fastcgi_ignore_client_abort on; +fastcgi_intercept_errors on; diff --git a/docker/nginx/root/nginx.conf.sample b/docker/nginx/root/nginx.conf.sample index f1df63f892..ce2cefa92a 100644 --- a/docker/nginx/root/nginx.conf.sample +++ b/docker/nginx/root/nginx.conf.sample @@ -1,4 +1,11 @@ send_timeout $GATEWAY_SEND_TIMEOUT; +keepalive_timeout $GATEWAY_SEND_TIMEOUT; +proxy_connect_timeout $GATEWAY_PROXY_TIMEOUT; +proxy_send_timeout $GATEWAY_PROXY_TIMEOUT; +client_header_timeout $GATEWAY_SEND_TIMEOUT; +client_body_timeout $GATEWAY_SEND_TIMEOUT; +fastcgi_read_timeout $GATEWAY_FASTCGI_TIMEOUT; + upstream backend { server phraseanet:9000; } diff --git a/docker/phraseanet/entrypoint.sh b/docker/phraseanet/entrypoint.sh index 24fcf17661..2745c3730a 100755 --- a/docker/phraseanet/entrypoint.sh +++ b/docker/phraseanet/entrypoint.sh @@ -4,7 +4,7 @@ set -e envsubst < "docker/phraseanet/php.ini.sample" > /usr/local/etc/php/php.ini envsubst < "docker/phraseanet/php-fpm.conf.sample" > /usr/local/etc/php-fpm.conf -envsubst < "docker/phraseanet/root/usr/local/etc/php-fpm.d/zz-docker.conf" > /usr/local/etc/php-fpm.d/zz-docker.conf +cat docker/phraseanet/root/usr/local/etc/php-fpm.d/zz-docker.conf | sed "s/\$REQUEST_TERMINATE_TIMEOUT/$REQUEST_TERMINATE_TIMEOUT/g" > /usr/local/etc/php-fpm.d/zz-docker.conf chown -R app:app \ cache \ diff --git a/docker/phraseanet/root/usr/local/etc/php-fpm.d/zz-docker.conf b/docker/phraseanet/root/usr/local/etc/php-fpm.d/zz-docker.conf index 2dfa5d2c60..d360539ebd 100644 --- a/docker/phraseanet/root/usr/local/etc/php-fpm.d/zz-docker.conf +++ b/docker/phraseanet/root/usr/local/etc/php-fpm.d/zz-docker.conf @@ -15,7 +15,7 @@ pm.min_spare_servers = 2 pm.max_spare_servers = 4 pm.max_requests = 1000 -request_terminate_timeout=300s +request_terminate_timeout=$REQUEST_TERMINATE_TIMEOUT pm.status_path = /status ping.path = /ping