아무래도 우리가 입주해 있는 건물의 네트웍 문제인 것으로 생각된다.
Tomcat 포트를 80으로 변경해서 Apache를 거치지 않고 통신하도록 테스트도 해보고,
내부라인, 외부라인, 패킷 캡쳐 등 별별 짓을 해서 알았다.

애꿎은 Apache HTTP 서버랑 UTM 장비만 의심을 받고 있었네...

문의를 한 상탠데 언제쯤 해결이 될지는 모르겠다.
그래도 원인이 되는 부분은 알았으니, 이제 시간이 해결해 주겠지 ㅎㅎ

연관글

신고
Posted by 봉보리봉봉
Tomcat에서 out.flush(), response.flushBuffer()가 잘 되는데
Apache + mod_jk 연동시 Apache를 통해서 접근할 때는 flush 기능이 정상적으로 동작되지 않는 문제가 있음.

한참을 찾아서, mod_jk 옵션 문제라는 것을 알았다.

mod_jk 옵션에 다음의 옵션을 추가해야 flush 기능이 정상적으로 동작함.

JkOptions +FlushPackets

헤더까지 바로 전송하고 싶은 경우는
JkOptions +FlushHeader

옵션을 추가해 주면 됨.

아래는 tomcat connector에 나와 있는 옵션의 설명.

JkOptions FlushPackets, you ask mod_jk to flush Apache's connection buffer after each AJP packet chunk received from Tomcat. This option can have a strong performance penalty for Apache and Tomcat as writes are performed more often than would normally be required (ie: at the end of each response).

  JkOptions     +FlushPackets


JkOptions FlushHeader, you ask mod_jk to flush Apache's connection buffer after the response headers have been received from Tomcat.

  JkOptions     +FlushHeader

신고
Posted by 봉보리봉봉
Windows의 예를 들자면, 기본적으로 설치된 Apache Tomcat(이하 Tomcat)의 document root directory는 다음과 같다.
{tomcat installed directory}/webapp


또 이 하위로는 ROOT와 기타 다른 context들이 존재한다.

다음은 이러한 기본 디렉토리(webapp)를 변경하는 방법이다.
참고로, Tomcat 6.x 버전을 기준으로 기록한다.

설치 디렉토리의 conf 디렉토리 내에 server.xml 파일이 존재하는데 이 파일을 편집기로 연다.
파일의 맨 마지막 부분을 보면 <Host name="localhost" 로 시작하는 부분이 있다.


이 부분을 보면 appBase라는 attribute가 있는데, 이 녀석을 수정해서 기본 application directory를 변경할 수 있다.
위의 그림에서처럼 상대경로를 attribute의 값으로 입력하면, tomcat이 설치된 디렉토리 하위에서 디렉토리를 찾게되는데 이 부분은 절대 경로도 입력가능하다.

또한, Host 하위에 들어갈 수 있는 element로는 Context가 있는데, Context를 설정함으로써 ROOT 컨텍스트나 특정 컨텍스트의 document 경로를 별도로 지정할 수 있다.
docBase attribute에도 appBase attribute 처럼 상대경로와 절대경로 입력을 모두 지원한다.

이 때 주의해야할 점이 있는데, appBase와 하위 context의 docBase의 경로가 같은 경우 docBase 하위의 디렉토리를 context로 인식하여 실행이 제대로 되지 않는다.

그리고 tomcat에서도 Apache Web Server처럼 가상 호스트를 지원하는데, 설정 방법은 위에서 설명한 것과 동일하다. 다만, 가상 호스트를 위한 별도의 <Host> element가 정의되어 있어야 한다.

예를 들면, 다음과 같이 정의되면 된다.

<Host name="bongbong.net" appBase="{directory}" 나머지 부분은 위와 동일...>
    <Alias>www.bongbong.net</Alias>
    <Value className=... (이 부분은 기본 설정 부분을 참조하라. log에 관련된 것임)
</Host>


신고
Posted by 봉보리봉봉
이전버튼 1 이전버튼

블로그 이미지
봉보리봉봉

공지사항

Yesterday33
Today6
Total131,869

티스토리 툴바