Как заставить обратный прокси-сервер Apache поддерживать соединение с длительным опросом? - PullRequest
0 голосов
/ 19 февраля 2019

У нас есть сервлет кометы Apache на сервере Tomcat 8 для соединения с длинным опросом, как показано ниже.

public class Connect extends HttpServlet implements CometProcessor {
    public void event(CometEvent event) throws IOException, ServletException {
        HttpServletRequest request = event.getHttpServletRequest();
        HttpServletResponse response = event.getHttpServletResponse();
        if (event.getEventType() == CometEvent.EventType.BEGIN) {
            event.setTimeout(300000);
            ...
        } else if (event.getEventType() == CometEvent.EventType.ERROR) {
            event.close();
        } else if (event.getEventType() == CometEvent.EventType.END) {
            event.close();
        }
    }
}

и соединитель файла Tomcat8 server.xml, как показано ниже

 <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
               connectionTimeout="90000"
               redirectPort="8443" URIEncoding="UTF-8"/>

Время соединения с кометой истечет через 300 секунд.Это работает, когда клиент пытается подключиться к Tomcat напрямую. (http://IP:8080/Connect).

Однако, если мы настроим обратный прокси-сервер Apache, соединение всегда будет отключено через 60 секунд. Настройка прокси-сервера Apache какниже

ProxyTimeout 310
ProxyPass /Connect http://localhost:8080/Connect connectiontimeout=60 timeout=310 keepalive=On ttl=350
ProxyPassReverse /Connect http://localhost:8080/Connect

Как сделать так, чтобы соединение с длинным опросом работало на обратном прокси-сервере?

Спасибо

...