1

S3 から Vimeo と Youtube の動画をアップロードする Web アプリに Laravel (5.4) Forge を使用しています。以前、Forge に移行する前は、このスクリプトは正しく機能していましたが、現在でも小さなファイルで正しく機能しています。

より大きなファイル (〜 1 GB) をアップロードしようとしているので、php アップロード スクリプトの 1 分強後に 502 Bad Gateway を受け取りました。アプリケーションの残りの部分は正常に動作します。

具体的には、次のエラーがあります。

2017/04/24 20:36:48 [error] 2111#2111: *1 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: X.X.X.X.X, server: myserver.com, request: "POST /recordings/vimeo/upload HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.1-fpm.sock:", host: "myserver.com", referrer: "http://myserver.com/recordings"

私が試してみました:

  • nginx config で fastcgi ディレクティブを追加/編集する
  • PHPでoutput_bufferingをアップする
  • 以下にproxy_およびclient_max_bodyアイテムを追加します

これが私のNGINX構成です:

include forge-conf/myserver.com/before/*;

server {
    listen 80;
    listen [::]:80;
    server_name .myserver.com;
    root /home/forge/myserver.com/public;

    # FORGE SSL (DO NOT REMOVE!)
    # ssl_certificate;
    # ssl_certificate_key;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers 'hidden for SO';
    ssl_prefer_server_ciphers on;
    ssl_dhparam /etc/nginx/dhparams.pem;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    index index.html index.htm index.php;

    charset utf-8;

    include forge-conf/myserver.com/server/*;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    access_log off;
    error_log  /var/log/nginx/myserver.com-error.log error;

    error_page 404 /index.php;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
        fastcgi_index index.php;
        fastcgi_read_timeout 3600;
        fastcgi_buffers 8 512k;
        fastcgi_buffer_size 512k;

        include fastcgi_params;


        client_max_body_size 128M;
        proxy_buffer_size 256k; 
        proxy_buffers 4 512k;
        proxy_busy_buffers_size 512k;

    }

    location ~ /\.ht {
        deny all;
    }
}

include forge-conf/myserver.com/after/*;

私は何が欠けていますか?私はこれをまったく理解できないようです。助けてくれてありがとう。

4

2 に答える 2