Php, CURL, Operation timed out after 60010 milliseconds with 0 bytes received

I’m using this function to make cURL calls:

$crl = curl_init();
curl_setopt($crl, CURLOPT_URL, $url);
curl_setopt($crl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($crl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($crl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($crl, CURLOPT_HTTPHEADER, ['Expect:']);
curl_setopt($crl, CURLOPT_POSTFIELDS, $postParameters);
curl_setopt($crl, CURLOPT_CONNECTTIMEOUT, $timeOut);
curl_setopt($crl, CURLOPT_TIMEOUT, $timeOut);
$answer = curl_exec($crl);
$answer = [
    'result' => $answer,
    'error' => curl_error($crl),
    'errno' => curl_errno($crl)
];
curl_close($crl);

this works very fine so far. If the size of the $postParameters is about 0.5 MB, it gets the answer in 2-3 seconds.
But when it’s about 1 MB, it never returns. I get timeout, no matter how high I set (60, 120…). It holds for 2 minutes and timeout. And it looks it doesn’t even get the server, I mean if I do loggings in the server it looks it just wont get executed.
I tried to set max_input_vars to 1000000, post_max_size to 1024M (on server side), nothing works.