Я испытываю странные таймауты, используя cURL с PHP при попытке получить доступ к Cloud Cloud. Это, похоже, влияет на все запросы недействительности, создает дистрибутивы и т. Д. CURL либо отчеты, получающие 0 байтов, либо очень мало байтов, а затем тайм-аут: Operation timed out after 120000 milliseconds with 88 out of 619 bytes received
.Странный таймаут с PHP cURL и SSL
Расширение настроек таймаута, похоже, не имеет значения.
Ввод трассировки использования CURLOPT_VERBOSE
производит этот вывод:
* About to connect() to cloudfront.amazonaws.com port 443 (#0)
* Trying 72.21.215.67... * connected
* Connected to cloudfront.amazonaws.com (72.21.215.67) port 443 (#0)
* skipping SSL peer certificate verification
* SSL connection using SSL_RSA_WITH_RC4_128_MD5
* Server certificate:
* subject: CN=cloudfront.amazonaws.com,O=Amazon.com Inc.,L=Seattle,ST=Washington,C=US
* start date: Jul 30 00:00:00 2010 GMT
* expire date: Jul 29 23:59:59 2013 GMT
* common name: cloudfront.amazonaws.com
* issuer: CN=VeriSign Class 3 Secure Server CA - G2,OU=Terms of use at https://www.verisign.com/rpa (c)09,OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US
> POST /2010-11-01/distribution/E1CIM4A92QFD98/invalidation HTTP/1.1
User-Agent: S3/php
Accept: */*
Host: cloudfront.amazonaws.com
Date: Wed, 07 Mar 2012 14:31:58 GMT
Content-Type: application/xml
Authorization: AWS ************************
Content-Length: 200
< HTTP/1.1 201 Created
< x-amzn-RequestId: 4c2d0d3f-6862-11e1-ac27-5531ac8c967f
< Location: https://cloudfront.amazonaws.com/2010-11-01/distribution/E1CIM4A92QFD98/invalidation/I35KLNROKA40FU
* Operation timed out after 120000 milliseconds with 0 bytes received
* Closing connection #0
Это кажется похоже на this question. Однако, похоже, что в моем случае завиток действительно получает ответ, но почему-то игнорирует его и тайм-аут? Из того, что я вижу, получен ответ (201 Created
...), и нет ошибок SSL. Так почему же завиток тайм-аут?
Curl Информация о версии
[version_number] => 463623
[age] => 3
[features] => 1597
[ssl_version_number] => 0
[version] => 7.19.7
[host] => x86_64-unknown-linux-gnu
[ssl_version] => NSS/3.12.7.0
[libz_version] => 1.2.3
[protocols] => Array ([0] => tftp [1] => ftp [2] => telnet [3] => dict [4] => ldap [5] => ldaps [6] => http [7] => file [8] => https [9] => ftps [10] => scp [11] => sftp)
В нем написано 'Content-Type: application/xml' и' Content-Length: 200', а затем 'с полученными 0 байтами' ... кажется, что получены ** заголовки ответов **, но не этот 200-байтовый XML-код ** ответ body **. –
Попробуйте отключить брандмауэр только для того, чтобы сделать тест и посмотреть, что произойдет. –
Спасибо @ J.Bruni. Я считаю, что заголовок «Content-Length» предназначен для запроса, и если вы посмотрите дальше, на сервере появится ответ («HTTP/1.1 201 Created») с заголовком «Местоположение». '' С 0 байтами, полученными '', является именно этой проблемой. Он получил несколько байтов, но скручивание игнорирует их и тайм-аут ... Нет брандмауэра – gingerlime