'apache'에 해당되는 글 2

  1. 2009.05.20 Apache + Tomcat 연동 확인
  2. 2009.05.04 [IBM dWs] Ajax에서 XML 처리하기

Apache + Tomcat 연동 확인

이미지나 정적 파일처리는 아파치에서 하게 된다.

톰캣을 내리고 이미지를 요청해서 처리가 되면 아파치에서 이미지를 제대로 처리한다는 말이다.
그러나 503 Service Unavailable 에러가 발생한다.

그래서 server.xml 에서 다음의 Valve 를 활성화시킨다.
<Valve className="org.apache.catalina.valves.AccessLogValve"
         directory="logs"  prefix="localhost_access_log." suffix=".txt"
         pattern="common" resolveHosts="false"/>

이미지를 요청하면
# tail -f tomcat/logs/localhost_access_log.2009-05-19.txt
111.20.30.90 - - [19/May/2009:22:49:57 +0900] "GET /images/prev.gif HTTP/1.1" 304 -

# tail -f apache/logs/access_log
111.20.30.90 - - [19/May/2009:22:49:57 +0900] "GET /images/prev.gif HTTP/1.1" 304 -

아파치에서 이미지파일을 처리한다면 톰캣 access 로그에는 남지 않아야 되지 않나?

그리고 존재하지 않는 이미지 파일을 요청하면 404 에러가 발생하는데 아파치에 설정된 404 페이지가 나와야 한다.
그런데 지금은 톰캣의 404 페이지가 나온다.

[todo] modjk 설정을 다시 해봐야 할듯, 아마도 모든 요청이 tomcat 으로 가게 되어서 그럴거야

[IBM dWs] Ajax에서 XML 처리하기

웹에서 XML 자료를 가져온 후 파이프라인을 거쳐 원하는 정보를 정해진 형식으로 추출해서 출력하는 여러 방법을 보여준다.

Ajax에서 XML 처리하기, Part 1: 네 가지 방법
Ajax에서 XML 처리하기, Part 2: Ajax와 XSLT를 이용하는 방법 두 가지 

Ajax에서 XML 처리하기, Part 2- Ajax와 XSLT를 이용하는 방법 두 가지.pdf

Ajax에서 XML 처리하기, Part 3: JSON을 사용하고 프록시 피하기


이 글에서는 간단한 Ajax 라이브러리를 만들어 사용한다.(ajax-simple.js)
미국립 기상청(NWS) 사이트에서 날씨 정보를 가져온다.

접근 방법 1. DOM 트리 탐색
웹프록시를 거쳐서 데이터를 가져온 뒤 브라우저가 DOM에서 값을 추출해서 보여준다.

- Ajax 의 XMLHttpRequest 객체는 같은 도메인으로만 요청이 가능한데 이를 해결하기 위해 웹 프록시를 사용한다.
웹 프록시는 한 서버로 보낸 요청을 다른 서버로 전달하는 방법이다.
아파치 웹 서버에서 프록시는 ProxyPass 규칙으로 구현한다.(웹 서버 구성을 바꿀 권한이 있어야 하겠지)

- DOM에서 값을 추출하기
접근 방식 2: 서버쪽 XSLT
서버에서 데이터를 가져온 뒤 XSLT 를 사용하여 XML 을 HTML 로 변환한 다음, HTML 코드를 브라우저로 전송한다.

- 리눅스에 있는 xsltproc 이라는 명령행 XSLT 프로세서를 이용한다.
Perl 스크립트로 xsltproc, wget 을 사용해서 파이프라인 구성 =-=> wget 은 자바 URLConnection 으로 가능하지 않나?

접근 방식 3: 클라이언트쪽 XSLT
웹프록시를 거쳐 데이터를 가져온 뒤 브라우저에서 XSLT 변환을 해서 보여준다.

- 인터넷 익스플로러, 파이어폭스, 오페라 등 주요 브라우저는 모두 나름대로 XSLT 처리를 지원한다.
파이어폭스와 오페라는 XSLTProcessor 객체를 제공한다. 인터넷 익스플로러는 문서 모델을 확장하여 XSLT 처리를 지원한다.
 
접근 방식 4: JSON과 동적 script 태그
야후 파이프를 거쳐 데이터를 가져온 뒤 브라우저에서 보여준다.

- Ajax 동일 도메인 제약 문제(same domain problem) 해결하기
(아파치 ProxyPass 규칙을 설정하는 등) 웹 서버 구성을 변경
다른 서버의 데이터를 긁어오는 서버 스크립트를 작성
야후 파이프(Yahoo! Pipes) 같은 외부 서비스 이용(여기에는 script tag hack 같은 기법이 추가된다.)

- script 태그를 동적으로 생성하기
 페이지를 읽은 후에 자바스크립트 코드를 읽어들인다. =-=> onload 에 두면 안되나?
- JSON