서론

최근 페도라코어10 리눅스 시스템에 apache+ajp+tomcat 를 셋팅할 일이 생겨서 삽질끝에 작업을 완료하였다. 그래서 이번에 내 gentoo 리눅스 서버에도 미뤄두었던 tomcat 연동을 하기로 맘을 먹었다.

 

본론

1. apache 업그레이드 하기

mod_proxy_ajp 는 apache 2.2 버젼에서 추가된 모듈이기 때문에 그 이하의 버젼이라면 업그레이드 해야한다. gentoo 에서 아파치 업그레이드 하는방법은 아래 사이트를 참조하기 바란다. 여기서 중요한건 업그레이드 중에 make.conf 설정에서 APACHE2_MODULES 셋팅에 proxy_ajp 를 추가하고 나머지를 알맞게 변경해야 한다는 것이다.

http://www.gentoo.org/proj/en/apache/doc/upgrading.xml

2. 가상호스트 설정하기

아파치와 연동한 이유는 아파치의 다른 기능들을 그대로 쓰면서 톰켓도 돌아가게 하기 위해서 이다. 그래서 아파치의 가상호스트 설정으로 특정 서브도메인을 지정해서 해당 가상호스트로 들어오는 모든 요청은 톰켓으로 돌리도록 만들겠다. 먼저 아파치 가상호스트 설정에 아래와같이 추가해서 apps.cranix.net 으로 들어오는 모든 요청을 톰켓으로 돌리도록 한다.

<VirtualHost apps.cranix.net:80>
        ServerName apps.cranix.net
        ServerAdmin cranix@cranix.net
        ErrorLog "/home/users/admins/cranix/logs/apps_error_log"
        RewriteEngine On
        RewriteRule (.*) ajp://localhost:8009$1 [P]
</VirtualHost>

가상호스트 설정은 아파치에만 있는것이 아니다 톰켓 역시 하나의 서버이고 가상호스트 설정을 가지고 있다. 위에서 설정한 설정대로 아파치에서 먼저 요청을 받아서 톰켓으로 넘기게 되면 톰켓 역시 apps.cranix.net  이라는 도메인으로 받게 됨으로 가상호스트 설정을 해 주어야 한다. 톰켓 설정은 server.xml 파일을 열어서 아래 부분을 추가한다.

<Host name="apps.cranix.net" appBase="/home/users/admins/cranix/webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
                <Context path="" docBase="/home/users/admins/cranix/public_html" privileged="true"/>
</Host>

그리고 톰켓의 기본 http 포트인 8080 번은 쓰지 않을것이기 때문에 해당 Connector 태그는 주석을 걸어준다.

이제 /home/users/admins/cranix/webapps 디렉토리에 톰켓 어플리케이션을 올리게되면 http://apps.cranix.net/[어플리케이션명] 형태로 접근이 가능하게 된다.

3. 보안관련 셋팅하기

톰켓 혼자서 실행시키면 알아서 /WEB-INF 디렉토리나 /META-INF 디렉토리의 접근을 금지했지만 apache 와 같이 실행하면 설정을 해 주어야 한다. apache 의 설정파일에 아래 내용을 추가한다.

<LocationMatch “/WEB-INF”>

deny from all

</LocationMatch>

<LocationMatch “/META-INF”>

deny from all

</LocationMatch>

 

결론

서버작업은 언제나 삽질의 연속이다. 이 작업도 써놓은것은 얼마 안되지만 이 결과를 얻기 위해서 수많은 삽질을 했다. 그래도 역시나 깔끔해진 서버를 보면 뿌듯하긴 하다.

신고
by cranix 2009.08.07 15:47
동아리에서 작은 FTP 서버를 운영하는데

아무래도 동아리 서버다 보니까 이하드 저하드 끼워 맞춰놓아서 하드만 무지하게 많고,

또 툭하면 정전되고... 온도도 높아서 뚜껑열어서 하드 만지면 손 데일 정도고...-_-;

이런 상황에서 레이드 해놨다가 하나라도 뻑나면 완전 도루묵이라 그냥 각각 나눠놓고 쓰고있었다.

그런데 하드가 약 5개 정도 되다보니 각 하드별로 디렉토리 관리하기도 벅차지는것이다.

그래서 생각한게 로드밸런싱 FTP 서버!

FTP 서버이긴 한데 파일을 올리면 마운트된 각 하드들의 용량을 체크해서 가장 적게 쓰고있는 하드에다가 알아서 올려주는 기능을 한다.

또한 나눠져있는 각 하드를 하나의 하드 보듯이 검색할수 있게 해 준다.

Apache MINA FTP Server 를 이용해서 구현해 봤다.
신고

'내작품' 카테고리의 다른 글

JAVA 지렁이게임  (753) 2009.01.13
JAVA 비행 애니매이션  (48) 2009.01.13
JAVA 로드밸런싱 FTP Server!  (19) 2009.01.05
PHP 코또복권  (20) 2008.04.21
AJAX 채팅방 업그레이드.  (26) 2008.02.20
제대로 간단하게 HTML 에디터를 설치해보자! - cranixEditor  (26) 2007.08.21
by cranix 2009.01.05 15:13

 [허가권필드]

 

 

#스티키비트(Sticky bit) 란?

 

 모든 사용자가 사용할 수 있는 디텍토리에 지정하는 것으로 적용시 디텍토리 내에 있는

파일을 임의대로 삭제할 수 없고, 오직 소유자에게만 삭제, 변경 권한이 있다.

리눅스에서는 /tmp 디텍토리가 대표적으로 스티키비트(sticky bit)가 설정되어있다.  

 

 

다시 말하자면 다중사용자가 공동작업을 하는 디텍토리의 경우, 사용자들에게 파일을 작성하는 (디텍토리)권한을 주는 것은  동시에 다른 사용자의 파일을 지울 수 있는 권한도 갖게한다. 따라서 스티키비트(Sticky bit)를 설정하여 '파일을 작성할 수 있지만 남의 파일을 지울 수 없게'하는 것이다.

 

 

 

#스티키비트(Sticky bit)의 파일 퍼미션 변경

 

* 절대표기 값 : 1000

* 스티키비트의 적용과 해제 ( o : other 다른사용자, t : 스티키비트 약자)

    chmod o+t 파일이름 : 스티키비트의 적용

    chmod o-t 파일이름 : 스티키비트의 적용 해제



     출처 : http://blog.naver.com/savemyface/130006019051 엘렌님의 블로그

            한국기술교육대학 박진우 연구원님 강의자료 '디텍토리 구조와 파일특성'

신고
by cranix 2007.04.30 23:56
| 1 |