Оптимизация времени соединения PHP+CURL

У меня есть PHP-скрипты, выполняющие запросы CURL POST к удаленным серверам Nginx через HTTPS (несколько раз в секунду).

Моя проблема заключается в том, что для каждого запроса требуется 3 приема-передачи (подключение TCP + рукопожатие SSL), прежде чем передача может начаться, что значительно замедляет процесс.

Есть ли способ уменьшить это, например, с помощью своего рода «Keep-Alive», чтобы избежать повторного согласования TCP / SSL для каждого запроса?

Благодарю вас!


person David    schedule 25.04.2018    source источник
comment
http 1.1 по умолчанию поддерживает активность, вы можете отправлять несколько запросов через одно и то же соединение, просто не закрывайте его явно.   -  person zerkms    schedule 26.04.2018
comment
Как вы поддерживаете связь между разными скриптами? Каждый скрипт выполняет 1 запрос, а затем останавливается   -  person David    schedule 26.04.2018
comment
Предположительно, вы не можете, это ничего не проясняет в вопросе. Поэтому я предположил, что скрипт запускает несколько запросов одновременно. В случае независимых сценариев единственным решением является перемещение сервера, на котором выполняются сценарии, ближе к целевому серверу.   -  person zerkms    schedule 26.04.2018


Ответы (1)


Невозможно поддерживать соединение между двумя разными PHP-скриптами, поскольку PHP-скрипт «умирает» в конце (таким образом, закрывая любой открытый сокет), единственный способ сделать то, что вы хотите достичь, - это иметь фоновый PHP-скрипт который никогда не останавливается, берет на себя получение данных и помещает их в базу данных или файл, который вы сможете легко и быстро запросить позже.

В другой теме создание нескольких HTTPS-запросов в секунду, возможно, не самый эффективный способ сделать это, если у вас есть рука на сервере, который вы запрашиваете, вы можете использовать WebSockets, что позволит вам делать несколько запросов в секунду без каких-либо серьезных проблема с производительностью

Я надеюсь, что это ответило на ваш вопрос, хорошего дня

person SeekDaSky    schedule 25.04.2018