2009-11-24 3 views
7

나는 tomcat 6 서버의 infront 2.2 서버가있다. 아파치에서 mod_proxy_ajp를 사용하여 요청을 Tomcat에 프록시 처리합니다. 꽤 표준 설치.tomcat에 아파치 프록시 살아있는 혼란을 유지

브라우저의 연결 유지 연결을 해제해야하는 경우 어떻게해야합니까?

내 사용자 중 일부가 임의로 문제를 일으키는 비활성화 된 연결 유지 연결을 끊을 수있는 방화벽이 있다고 의심되기 때문에 연결 유지 http 요청을 사용하지 않도록 설정해야합니다.

아파치와 바람둥이에는 다양한 'keep alive'비트와 구성이 있습니다.

을 httpd.conf 당신이 ProxyPass로 설정을 httpd.conf에서 또한

, 당신은 매개 변수 "킵 얼라이브"그러나이있을 수 있습니다 (내 경우의 차이를 만드는 것 같지 않습니다) "KeepAlive를 해제"가 내 경우에는없고 문제가되지 않는 아파치와 바람둥이 사이에 프록시/방화벽이있는 경우에만 도움이 될 것입니다.

Tomcat 자체의 http 커넥터에는 "keepAliveTimeout"및 "maxKeepAliveRequests"가 있지만 http 커넥터에만 해당됩니다.

tomcat ajp 커넥터에는 "keepAliveTimeout"도 있지만, 이것은 아파치에서 오는 ajp 요청에 사용됩니다. 브라우저에서 아파치로의 실제 HTTP 요청에 따라야하는지 확실하지 않습니다.

맨 위에는 HTTP1.0과 HTTP1.1의 차이점이 있습니다.

그래서 혼란 스럽습니다. 누군가 설명해 주시겠습니까?

+0

왜 계속 연결 유지 기능을 사용하지 않으려하는지 궁금합니다. – Stephane

답변

12

적어도 4 개의 "연결 유지"가 있습니다.

  1. 클라이언트 브라우저와 Apache간에 keep-alive HTTP 계층입니다. (HTTP/TCP 연결에서 여러 클라이언트 요청 "KeepAlive"지시문을 구성 할 수 있습니다.)

  2. 클라이언트 브라우저와 Apache간에 TCP 연결 유지. (방화벽으로 연결이 끊어지는 것을 피하려면 주기적으로 빈 패킷을 보냅니다 (Linux에서는 약 2 시간 정도). 아파치에서 구성하는 방법을 모르겠습니다.)

  3. 아파치와 수코양이. (AJP/TCP 연결에서 다중 Apache 요청을 활성화합니다. "ProxyPass"를 구성하려면 "max"및 "smax"옵션을 사용하십시오.)

  4. Apache와 Tomcat간에 TCP 연결 유지. (2와 동일하지만, 아파치와 톰캣 사이의 방화벽. "ProxyPass로"에 대한 "킵 얼라이브"옵션 구성하는 지침.) 내에서 방화벽에 대해 올바르게 작동 할 수 있습니다 그래서

, 구성 ("KeepAlive를 OFF") 클라이언트와 아파치. "LogFormat"지시문에 "% X"을 사용하여 (위의 유형 1) 연결 유지가 비활성화되었는지 확인하십시오.

덧붙여서, KeepAliveTimeout가 그렇게 크지 않은 경우, 방화벽에 의한 접속 폐쇄가 큰 문제를 일으키지 않는다고 생각합니다. (경고 메시지 이외의) 문제가 없다면 제 생각에는 그대로 둘 수 있습니다.

관련 문제