У меня есть 2 сервера, один для тестирования (маленький p c) и большой сервер, оба с Ubuntu. Оба клонировали конфиги, настройки и файлы, используя rsyn c. Проблема в том, что с 2 недель большой сервер замедляется из-за времени отклика Google от reCaptcha v3. На тестируемом компьютере время отклика на сообщение curl составляет 0,3 секунды (очень приемлемое время), но на сервере я получаю в среднем 10 секунд. Оба устройства P C используют один и тот же провайдер и маршрутизатор, поэтому это не проблема скорости или брандмауэра (уже проверено и используется одна и та же конфигурация на обоих).
Я использую этот код:
$ch = curl_init();
curl_setopt_array($ch,
[
CURLOPT_URL => 'https://www.google.com/recaptcha/api/siteverify',
CURLOPT_POST => TRUE,
CURLOPT_POSTFIELDS => [
'secret' => $secretKey,
'response' => $captchaToken,
'remoteip' => $_SERVER['REMOTE_ADDR'],
],
CURLOPT_RETURNTRANSFER => TRUE,
]);
$output = curl_exec($ch);
curl_close($ch);
также пробовал этот код, с такими же результатами:
$output =
file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=" .
$secretKey .
"&response=" .
$captchaToken);
РЕДАКТИРОВАТЬ: больше подробностей для ответа от Google на "медленный сервер". Другой ответ равен за исключением IP-адреса Google:
Main (Slow) server : 172.217.172.36
Test Server: 172.217.162.4
и результатов отладки:
* Hostname in DNS cache was stale, zapped
* Trying 172.217.162.4...
* TCP_NODELAY set
* Connected to www.google.com (172.217.162.4) port 443 (#0)
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use http/1.1
* Server certificate:
* subject: C=US; ST=California; L=Mountain View; O=Google LLC; CN=www.google.com
* start date: Mar 24 06:49:44 2020 GMT
* expire date: Jun 16 06:49:44 2020 GMT
* subjectAltName: host "www.google.com" matched cert's "www.google.com"
* issuer: C=US; O=Google Trust Services; CN=GTS CA 1O1
* SSL certificate verify ok.
> POST /recaptcha/api/siteverify HTTP/1.1
Host: www.google.com
Accept: */*
Content-Length: 810
Content-Type: multipart/form-data; boundary=----------------------- -3e838894f384bb29
< HTTP/1.1 200 OK
< Content-Type: application/json; charset=utf-8
< Date: Tue, 14 Apr 2020 16:02:13 GMT
< Expires: Tue, 14 Apr 2020 16:02:13 GMT
< Cache-Control: private, max-age=0
< X-Content-Type-Options: nosniff
< X-Frame-Options: SAMEORIGIN
< Content-Security-Policy: frame-ancestors 'self'
< X-XSS-Protection: 1; mode=block
< Server: GSE
< Alt-Svc: quic=":443"; ma=2592000; v="46,43",h3-Q050=":443"; ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3- Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,h3-T050=":443"; ma=2592000
< Accept-Ranges: none
< Vary: Accept-Encoding
< Transfer-Encoding: chunked
<
* Connection #0 to host www.google.com left intact
[РЕДАКТИРОВАТЬ]
похоже, что проблема была в Google и DNS Cloudfire .. оба не могут быть доступны через моего интернет-провайдера в течение 2 недель (не знаю почему), я изменяю DNS сервера на OpenDNS, и теперь он снова работает быстро ... ВРЕМЕННОЕ.