2009-07-10 3 views
4

다른 컴퓨터에서 jboss에 대한 요청을 처리하기 위해 한 컴퓨터에서 아파치를 사용하고 있습니다. 내가 시작 jboss와 나는 웹 애플 리케이션에 액세스 할 수있는 모든 것이 잘 작동하지만 몇 시간이 지나면 결국 "프록시 서버가 업스트림 서버에서 잘못된 응답을 받았다"라는 오류가 발생하기 시작합니다. jboss를 다시 시작하면 모든 항목이 다시 작동하지만 몇 시간 후에 동일한 문제가 발생합니다 ...502 잘못된 게이트웨이 ... 업스트림 서버 (apache 및 jboss)에서 잘못된 응답

이 문제의 원인을 아는 사람이 있습니까? 나는이 시간에 아파치 로그에 접근 할 필요가 없다. (나는 몇 시간 안에해야한다.)하지만 재시작 한 이후에 jboss가있는 것처럼 보인다.

저는 mod_jk에서 jboss4.2.3과 apache 1.3을 사용하고 있습니다. 내가 jboss 로그에 오류를 찾지 못 하겠어, 내가 도달하려고 애 쓰고있는 앱은 오랜 시간이 걸리는 일을하지 않고있다. 기본 페이지는 단순한 로그인 페이지입니다. 포트 8009와 8080이 앱 서버와 웹 서버 간의 통신을 위해 열려 있습니다. 나는 어떤 구성이 잘못된 것인지 모른다.

+0

문제는 응용 프로그램 서버의 구성 파일이 웹 서버의 mod-jk 구성과 동일하게 설정되지 않았기 때문입니다. 문제는 얼마전에 해결되었으므로 정확히 무엇인지 기억하지 못한다. 그러나 나는 그것이 타임 아웃 문제라고 확신한다. 스카프 맨은 말했다. 나는 또한 maxThreads와 minThreads가 양쪽에서 똑같이 설정되지 않았다는 것을 기억합니다. – ravun

답변

6

아파치의 mod_jk가 JBoss의 AJP 커넥터와 동기화되지 않는 것처럼 들립니다. AJP 프로토콜은 웹 서버와 응용 프로그램 서버 사이의 영구적 인 재사용 연결을 사용하며 프로토콜이 연결의 양쪽 끝에서 정확히 동일하게 구성되지 않으면 결국 연결의 한쪽 끝에서 연결이 끊어 지지만 다른 쪽 끝은 끊어집니다 계속 사용하려고 노력합니다. 증상은 502 오류입니다.

첫 번째 제안은 다음과 같습니다. 필요하지 않으면 mod_jk를 사용하지 마십시오. 복잡하고 안정적인 시스템을 구성하기가 어렵습니다. 퍼포먼스 나로드 밸런싱 기능이 필요 없다면 mod_proxy를 대신 사용하는 것이 좋습니다. 대부분의 응용 프로그램과 마찬가지로 훌륭하고 쉽게 사용할 수 있습니다.

mod_jk를 고수하고 싶다면, 구 버전이 구성하기가 어렵 기 때문에 가장 먼저 mod_jk 버전 (현재 1.2.28)을 사용하고 있는지 확인해야합니다. 다행히도 mod_jk는 Apache 1.3에서 계속 지원됩니다.

다음으로 mod_jk 로그 파일 (JkLogFile 지정 문을 사용하여 구성)을 점검하십시오. 일이 잘못 될 때마다 연결 관련 오류가 많이 발생하는 경우 연결의 양쪽 끝에서 jk config를 조정해야합니다. 가장 가능성있는 범죄자는 시간 초과 설정이므로 read up about those here이며 양쪽 끝이 같은 찬송가 시트에서 부릅니다.

2

나는 아파치와 바람둥이를 사용하여 이것을 보았다. 내 특별한 상황에서 tomcat에 배포 된 응용 프로그램은 응답 스레드가 중단되는 버그가있었습니다. 결국 Tomcat은 작업자 스레드가 없어졌으며 Apache는 연결을 설정할 수 없었습니다.

우리의 경우 데이터베이스 연결이 연결 풀로 다시 제대로 해제되지 않고 다른 스레드가 풀에서 연결을 확보하기 위해 무기한 대기 중입니다. 그러나 무기한 응답 처리 스레드를 유지하는 모든 것이 동일한 문제를 일으킬 수 있습니다.

+0

코드를 다시 검사했지만 스레드가 열려있는 것처럼 보이지는 않지만 유의해야합니다. skaffman이 언급 한 mod_jk의 문제라고 확신합니다. 나는 항상 jboss 컴퓨터에 주소를 사용하여 사이트에 액세스 할 수 있습니다. 아파치를 통해 액세스하려고 할 때 오류가 발생합니다. – ravun

+0

일부 mod_jk 구성 편집을 시도했지만 문제가 지속됩니다. 구성은 매우 기본이며 문제의 원인이되는 이유를 알 수 없습니다. 사이트가 다시 시간 초과 된 후 앱 서버에서 네트워크 트래픽을 확인하기 시작했으며 포트 8009에서 수많은 "설정"연결을 보여 주며 30 분이 지나도 닫히지 않습니다. 그래서, 그것은 아마도 당신이 쑤셔 버린 문제 일 것 같습니다. 데이터베이스 연결을 확인한 후 데이터베이스 연결을 확인한 후 연결을 닫으므로 다른 문제가 무엇인지 알 수 없습니다. 다른 뭔가가 될 수 있을까요? – ravun

0

나는 아파치와 글래스 피시와 같은 문제를 가지고 있었다. 마지막으로 양쪽 모두 동일한 시간 제한을 구성하여 수정할 수 있습니다.

글래스 피시는이 라인으로 worker.properties을 개질시키기 리스너 구성을 변경하고 아파치에서

: 나는 보스에서이를 구성하는 방법에 대해 확신하지

worker.worker_name.socket_timeout=300

, 수정 될 수 web.xml 또는 cluster-service.xml.

관련 문제