Nginx + PHP-FPM 7.1 - 504 Gateway Time-out

Je suis à court d'un nginx 1.12 et php-fpm 7.1 comme séparés des conteneurs docker sur un nas synology et je reçois un 504 Gateway erreur si le script php s'exécute de plus de 60 ans. J'ai essayé déjà plusieurs nginx paramètres de configuration, mais l'erreur est toujours présente.

Voici mes config nginx:

#user  www-data;
#group http
worker_processes  1;

error_log  /opt/data/logs/nginx_error.log notice;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    #keepalive_timeout 30s;
    sendfile on;
    #tcp_nopush off;
    tcp_nodelay on;

    #gzip  off;

    send_timeout 300

    server {
        listen       80;
        server_name  "";

        root   /opt/php;
        index  index.php;

        location /data/ {
           sendfile        on;
           root   /opt;
        }

        location ~ \.php$ {

            include fastcgi_params;

            fastcgi_split_path_info ^(.+?\.php)(/.*)$;
            if (!-f $document_root$fastcgi_script_name) {
                return 404;
            }

            # Mitigate https://httpoxy.org/vulnerabilities
            fastcgi_param HTTP_PROXY "";

            fastcgi_pass   php:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_read_timeout 300;
            #fastcgi_buffering off;
            #fastcgi_keep_conn on;
            #fastcgi_intercept_errors on;
            #fastcgi_cache  off;
            #fastcgi_ignore_client_abort on;

        }

        location ~ ^/(status|ping)$ {
             access_log off;
             include fastcgi_params;
             fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
             fastcgi_pass php:9000;
         }
    }

}

Php testscript:

<?php 
sleep(65);
echo "done!";
file_put_contents("/opt/data/timetest.txt", "\nEnd", FILE_APPEND);

Après des années 60, le navigateur affiche la 504 Gateway Time-out. Le script php est toujours en cours d'exécution et il est aussi écrit le texte dans le fichier.

Nginx errorlog:

2017/07/22 08:16:32 [error] 8#8: *10 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 172.17.0.1, server: , request: "GET /timetest.php HTTP/1.1", upstream: "fastcgi://172.17.0.3:9000", host: "192.168.0.100:8081"

Quelqu'un a une idée?

À mon humble avis php:9000 n'est pas accessible à partir de conteneur avec nginx.

OriginalL'auteur liquidmotion | 2017-07-22