目的
- Postするファイルサイズの設定修正後にテストで大きいファイルをPostしてみたところ今度は「504 Gateway Timeout」のエラーが出たので解消する方法をメモ的にまとめる
経緯
- 下記の作業を実施して大きいファイルをPostしたところ「504 Gateway Timeout」が出た。
どうしたいか
- とにかく大きいファイルをPostできるようにしたい。(504エラーをとにかく回避したい。)
方法
-
/etc/nginx/conf.d/default.conf
を修正して設定反映できるようになったので、default.conf
に下記の内容を記載する。(一旦タイムアウトのリミットを300秒まで引き上げる)/etc/nginx/conf.d/default.conf# ファイルアップロードのタイムアウト対策 fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; send_timeout 300; keepalive_timeout 300;
-
default.confファイル内は下記の様に記載されている。
/etc/nginx/conf.d/default.confserver { listen 80; root /var/www/html/public; index index.php index.html; # ファイルアップロードのために追記 client_max_body_size 700M; # ファイルアップロードのタイムアウト対策 fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; send_timeout 300; keepalive_timeout 300; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass php:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; } }
-
php.iniに下記の記載を追記する。
php.inimax_execution_time = 300
-
念の為dockerを再ビルドしてnginxを再起動したら5分弱で容量の大きなファイルをPostする事ができた。
-
とりあえずPostできたが実用的な時間じゃないので色々試行錯誤が必要そう。