У нас есть прокси-сервер Apache, отправляющий запросы тысячам внутренних серверов.
Серверы неисправны, поскольку они требуют, чтобы как первоначальный запрос (без аутентификации), так и следующий запрос (с аутентификацией) находились в одном и том же HTTP-соединении. Мы не можем исправить это в разумные сроки.
Итак, мы хотели бы, чтобы прямой прокси использовал то же соединение, возможно, через пул соединений?
Прокси-серверы Apache по умолчанию закрывают соединение, как только получают ответ. Это по дизайну
«Рабочий по умолчанию для прямого проксирования не использует пул соединений в наивном смысле. Он закрывает каждое соединение после каждого запроса.
Рюдзиро Сибуя заметил, что Apache сигнализирует о том, что соединение будет оставаться открытым даже в режиме прямого прокси, но затем фактически закрывает соединение. Мы обсуждаем исправление этого, а именно всегда с самого начала сигнализировать «Соединение: закрыть» для прокси-воркеров по умолчанию. «
Есть некоторые предложения, которые можно обойти:
«Однако вы можете определить явные рабочие процессы (например, используя ProxyPass для обратного и, как писал Рюдигер, вероятно, также в режиме прямого прокси, который затем будет использовать HTTP Keep-Alive (по умолчанию, в зависимости от нескольких параметров конфигурации)»
Но я не знаю, как это сделать. Возможно, что-то с ProxySet? Проблема в том, что мне нужно как-то указать URL-адреса, но это прямой прокси - существует много возможных исходных серверов, и я не могу перечислить их заранее.
Как мы должны настроить все, чтобы это соединение использовалось повторно?
(это должен быть комментарий, но немного длинный)
У нас есть прокси-сервер Apache, отправляющий запросы тысячам внутренних серверов.
И вы только что заметили, что он не работает?
Если вы можете обрабатывать трафик для «тысяч серверов» на одном экземпляре Apache, это скорее указывает на проблему с вашей архитектурой.
Вы не можете полагаться на каждый компонент в цепочке (то есть не только на ваш прокси), реализующий пакеты поддержки активности так, как, кажется, ожидают внутренние серверы. Итак, то, что вы здесь пытаетесь сделать, - это в лучшем случае смягчение проблемы.
Я настоятельно рекомендую вам исправить здесь основную причину.
Итак, мы хотели бы, чтобы прямой прокси использовал то же соединение, возможно, через пул соединений?
Нет. Пул соединений поддерживает набор открытых соединений с исходным сервером. Он не связывает соединение на стороне клиента с соединением исходного сервера.
Не зная больше о том, что происходит на прокси-сервере, трудно сказать, каков правильный подход к этому обходному пути; в то время как Apache делает потрясающий веб-сервер, IMHO, есть инструменты получше для использования в качестве прокси (ATS, haproxy, pound, squid, nginx, varnish.
Исходя из моих знаний об Apache httpd, я не думаю, что это возможно сделать то, что вы пытаетесь достичь.