APPLICATION2006. 4. 26. 08:43
반응형

기준문서 : http://blog.naver.com/BlogMain.nhn?blogId=deepinheart&Redirect=Dlog&Qs=/deepinheart/20000783931"
기준문서 : http://www.superuser.co.kr/open_lecture/solaris/ - 살짝 변형본.
참조문서 : http://blog.naver.com/7loveletter7.do?Redirect=Log&logNo=5128261

# 계획
 java        : /usr/local/java
 apache      : /usr/local/apache2
 tomcat      : /usr/local/tomcat
 oracle      : /oracle
 주 디렉토리 : /export/home/sean/webapps/cwXXXX  : 협의

#작업 순서
 1. java설치.
 2. 준비작업 패키지 설치.
 3. apache 설치.
 4. tomcat 설치.
 5. mod_jk2.so 로 apache와 tomcat 연결.

#준비물
  http://sunfreeware.com/ 에서 패키지 준비.
 gcc-3.4.2-sol9-intel-local.gz   : 3.1 gcc설치 참조.
 arc-5.21e-sol9-intel-local.gz
 autoconf-2.59-sol9-intel-local.gz
 automake-1.9-sol9-intel-local.gz
 binutils-2.9.1.tar.gz
 libiconv-1.8-sol9-intel-local.gz
 libtool-1.5-sol9-intel-local.gz
 m4-1.4.2-sol9-intel-local.gz
 tar-1.15.1-sol9-intel-local.gz
        - gunzip ~.gz   -> tar xvf ~.tar -> pkgadd -d ~
 - tar xvfz ~gz                   -> pkgadd -d ~


#1. java설치 : java버전을 확인한 결과 버전이 높아 수정하지 않고,
 각 쉘에 JAVA_HOME,CLASSPATH를 설정.
 1. 디폴트 설치(솔라리스9i) 자바 확인. java -version
  bash-2.05$ java -version
   java version "1.4.2_08"
   Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_08-b03)
   Java HotSpot(TM) Client VM (build 1.4.2_08-b03, mixed mode)
   bash-2.05$
  bash-2.05$ pwd
   /usr/java/lib
 2. root 및 sean(작업계정) 쉘 스크립트 1차 생성.
  #vi /etc/passwd 에서 sh => bash 로 수정.
  #vi .bash_profile
   stty istrip
   JAVA_HOME=/usr/java
   CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar

   export JAVA_HOME CLASSPATH
   export PATH="$PATH:$JAVA_HOME/bin

        - 참조1 : java 설치.
 J2SE Install : http://www.superuser.co.kr/open_lecture/solaris/

2. 각종 pkg를 설치한다. 이 설치를 모두(?)해두어야 다음작업에서 한번에 configure 및 make,make install이 가능하다.

3. tomcat관리자 유저를 생성할 것.(보안상 권고)
 작업을 빨리하기 위해서 일단 root로 하고 생략했음.
 나중에 apache/log , work폴더의 권한 부분 수정이 생길 것이다.


# jdk, 톰켓 연결설정
# JDK
# Tomcat ENV
LANG=en_US
JAVA_HOME=/usr/local/java
TOMCAT_HOME=/usr/local/tomcat
PATH=$PATH:/usr/local/tomcat/bin:/usr/local/java/bin:/usr/local/apache/bin:/usr/local/mysql/bin
CLASSPATH=/usr/local/tomcat/common/lib/servlet.jar:/epersdata/lib/classes12.zip:/epersdata/WEB-INF/classes
export LANG JAVA_HOME TOMCAT_HOME PATH CLASSPATH
-> 작업중.

4. 아파치 설치
  4.1 설치
 #  tar xvfz httpd-2.0.55.tar.gz
 #  cd httpd-2.0.55
 #  ./configure --prefix=/usr/local/apache2
    =>일단생략 --enable-shared=max --enable-rule=SHARED_CORE --enable-module=so
 # make
 # make install

 4.2 httpd.conf 수정
 # /usr/local/apache2/conf # vi httpd.conf
  #ServerName 설정.
  #ServerName www.example.com:80
  ServerName 172.16.30.84:80
  
  #아파치를 실행할 유저와 그룹을 설정 및 기본 한글 등록.
  #Group #-1
  Group nobody
  AddDefaultCharSet EUC-KR
  DefaultLanguage euc_kr
  </IfModule>
  </IfModule>

 4.3 아파치 동작 확인 작업
  # /usr/local/apache2/bin/httpd -t
  Syntax OK
  # /usr/local/apache2/bin # httpd -l
  Compiled in modules:
    core.c     mod_access.c     mod_auth.c
    mod_include.c    mod_log_config.c   mod_env.c
    mod_setenvif.c   prefork.c    http_core.c
    mod_mime.c    mod_status.c    mod_autoindex.c
    mod_asis.c    mod_cgi.c    mod_negotiation.c
    mod_dir.c    mod_imap.c    mod_actions.c
    mod_userdir.c    mod_alias.c
    mod_so.c   <- 이것이 있어야 한다.
 4.4 apache동작확인.
 # /usr/local/apache2/bin # apachectl start
 :참조-에러시 # vi /usr/local/apache2/logs/error_log

  # 연결확인.
  웹에서 http://172.16.30.84/ 확인 => 톰캣이 나오면 성공.
  또는
  sean@casdev2 ~ $ telnet localhost 80
  Trying 127.0.0.1...
  Connected to localhost.
  Escape character is '^]'.
  ^C
  Connection to localhost closed by foreign host.

 4.5 apachectl stop

5. mod_jk2
   : 참조 http://kltp.kldp.org/stories.php?story=04%2F01%2F07%2F5551551&topic=2
   : 참조 http://www.joinc.co.kr/modules/moniwiki/wiki.php/pa_mod_jk2

 1. 다운로드
 tar xvfz jakarta-tomcat-connectors-1.2.14.1-src.tar.gz
 2. 다음부터의 작업 디렉토리
    cd ~~ /jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2 
 2. configure를 수행한다. 옵션은 참조를 볼것. 
 #  # ./configure --with-apxs2=/usr/local/apache2/bin/apxs
 3. # make
 #~~/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/build/jk2/apache2/ # ls  -> mod_jk2.so 만들어진다.
 4. mod_jk2.so 를 apache module로 move
 #~~/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/build/jk2/apache2 # cp mod_jk2.so /usr/local/apache2/modules/mod_jk2.so
 
 5. # vi /usr/local/apache2/conf/httpd.conf 아래 추가.
  LoadModule jk2_module modules/mod_jk2.so

6. 톰캣 설치
 6.1 톰캣 설치
 #tar xvfz jakarta-tomcat-5.0.28.tar.gz
  .....
  tar: A lone zero block at 82109
 # mv jakarta-tomcat-5.0.28 /usr/local/tomcat/

 6.2 톰캣 환경설정 : server.xml의 원본 백업 => server.xml.ori.bak
 # /usr/local/tomcat/conf #vi server.xml
 ############### server.xml[웹에서 다운]: http://www.superuser.co.kr/open_lecture/solaris/ #########
 <Server port="8005" shutdown="SHUTDOWN" debug="0">

  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" debug="0"/>
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" debug="0"/>

  <GlobalNamingResources>
   <Environment name="simpleValue" type="java.lang.Integer" value="30"/>

   <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase"
    description="User database that can be updated and saved">
   </Resource>

   <ResourceParams name="UserDatabase">
    <parameter>
     <name>factory</name>
     <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
    </parameter>
    <parameter>
     <name>pathname</name>
     <value>conf/tomcat-users.xml</value>
    </parameter>  
   </ResourceParams>
  </GlobalNamingResources>

  <Service name="Catalina">
   <Connector port="8009" enableLookups="false" redirectPort="8443" debug="0" protocol="AJP/1.3" />
   <Engine name="Catalina" defaultHost="localhost" debug="0">
    <Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm" debug="0" resourceName="UserDatabase"/>
    
    <Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true">
     <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="localhost_log." suffix=".txt" timestamp="true"/>
    </Host>
   </Engine>
  </Service>
 </Server>

 6.3. jk2.properties 맨 아래 추가.
 # vi /usr/local/tomcat/conf/jk2.properties
 handler.list=channelSocket,request
 channelSocket.port=8009
 apr.jniModeSo=inprocess


 6.4. workers2.properties 신규 작성.
 :workers2.properties는 apache가 어떤 디렉토리에서 어떤 파일을 읽었을때 apache가 그것을 처리하지 않고 톰캣으로 넘어가도록 하는 파일이다.
 이 파일을 apache에서 어떤 파일을 tomcat으로 처리하게 할지를 설정하는 파일이다. 위치는 위의 httpd.conf에서 경로를 적어주므로 특별히 상관이 없으나 관리의 편의성을 위하여 apache환경설정파일과 같이 두면된다.
  #작업중 백업해 두었음.
  #~~/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/conf# cp workers2.properties /usr/local/apache2/conf/workers2.properties
  # ~/usr/local/apache2/conf # mv workers2.properties workers2.properties.ing2 : 위에서 카피한 원본은 백업하고.
 #  vi /usr/local/apache2/conf/workers2.properties
  [channel.socket:localhost:8009]
  info=Ajp13 forwarding over socket
  tomcatId=localhost:8009
  [uri:/tomcat-docs/*]
  [uri:/jsp-examples/*]
  [uri:/servlets-examples/*]
  [uri:/cwhanjin/*]                   <------- tomcat/webapps/cwhanjin 으로 소스올리고.
  # http://domain.com/jsp 에서 처리되는 파일중 *.jsp 를 Tomcat 으로 처리하고 싶을때
  [uri:/jsp/*.jsp]
  # http://domain.com/abc 에서 처리되는 파일을 모두 Tomcat 으로 처리하고 싶을때
  [uri:/abc/*]
  [shm:]
  disabled=1
         #[uri:www.test.com/app/*] -> 톰캣에서 app라는 context를 사용할 경우 설정시켜야 함.
  #worker=ajp13:localhost:8009
  
  uri는 톰캣의 server.xml파일의 내용과 일치하여야 한다

 6.5 디렉토리 권한을 맞춘다.
  유저를 생성하였다면...
  chown -R tomcat:user /usr/local/tomcat/logs
  chown -R tomcat:user /usr/local/tomcat/work
 # /usr/local/tomcat # ls -al
 총 78
 drwxr-xr-x  11 root     other        512 11월  1일  14:33 .
 drwxr-xr-x  12 root     other        512 11월  1일  15:01 ..
 -rw-r--r--   1 root     root       11357 2004년  8월 29일 LICENSE
 -rw-r--r--   1 root     root         505 2004년  8월 29일 NOTICE
 -rw-r--r--   1 root     root        9002 2004년  8월 29일 RELEASE-NOTES
 -rw-r--r--   1 root     root        5887 2004년  8월 29일 RUNNING.txt
 drwxr-xr-x   2 root     root        1024 11월  1일  02:12 bin
 drwxr-xr-x   5 root     root         512 2004년  8월 29일 common
 drwxr-xr-x   3 root     root         512 11월  1일  22:05 conf
 drwxr-xr-x   2 root     root         512 2004년  8월 29일 logs
 drwxr-xr-x   5 root     root         512 2004년  8월 29일 server
 drwxr-xr-x   4 root     root         512 2004년  8월 29일 shared
 drwxr-xr-x   2 root     root         512 2004년  8월 29일 temp
 drwxr-xr-x   8 root     root         512 2004년  8월 29일 webapps
 drwxr-xr-x   2 root     root         512 2004년  8월 29일 work
 # /usr/local/tomcat # chmod 777 logs
 # /usr/local/tomcat # chmod 777 work

7. 환경변수 설정 및 테스트

 #vi /etc/profile 추가
 CATALINA_HOME=/usr/local/tomcat
 export CATALINA_HOME

 #vi /etc/profile
 # Tomcat ENV
 LANG=en_US
 JAVA_HOME=/usr/local/java
 TOMCAT_HOME=/usr/local/tomcat
 PATH=$PATH:/usr/local/tomcat/bin:/usr/local/java/bin:/usr/local/apache/bin:/usr/local/mysql/bin
 CLASSPATH=/usr/local/tomcat/common/lib/servlet.jar:/epersdata/lib/classes12.zip:/epersdata/WEB-INF/classes
 export LANG JAVA_HOME TOMCAT_HOME PATH CLASSPATH


 # /usr/local/tomcat/bin # ./catalina.sh start
 Using CATALINA_BASE:   /usr/local/tomcat
 Using CATALINA_HOME:   /usr/local/tomcat
 Using CATALINA_TMPDIR: /usr/local/tomcat/temp
 Using JAVA_HOME:       /usr/java
 # /usr/local/apache2/bin/# apachectl start

 #적절히 연동이 되었는지 아래 주소로 확인해 봅니다
 doc : http://localhost/tomcat-docs/
 JSP : http://localhost/jsp-examples/
 Servlet : http://localhost/servlets-examples/

 

######## 실패 로그 ########################
 4.0 (주)인터넷에서 참조 문서가 부족하여, 설치했다 지운버전. : 이것과 다음의 httpd의 차이점은 뭐지??
 #  pkgadd -d apache-2.0.54-sol9-intel-local
 #  pkgrm SMCapache
 #  rm -rf ./apache2

 4.1 설치
 #  tar xvfz httpd-2.0.55.tar.gz
 #  cd httpd-2.0.55
 #  ./configure --prefix=/usr/local/apache2
    =>일단생략 --enable-shared=max --enable-rule=SHARED_CORE --enable-module=so
 # make
 # make install

 4.2 apache동작확인.
 # /usr/local/apache2/bin # apachectl start
  httpd: Could not determine the server's fully qualified domain name, using 172.16.30.84 for ServerName
 
 4.3 문제가 발생하여 에러로드 확인결과 다음처럼 group 부분에 설정에 문제 발생.
  # vi /usr/local/apache2/logs/error_log
  [Mon Oct 31 23:22:26 2005] [alert] (22)Invalid argument: setgid: unable to set group id to Group 4294967295
  [Mon Oct 31 23:22:26 2005] [alert] (22)Invalid argument: setgid: unable to set group id to Group 4294967295
 ->httpd.conf 수정
 # /usr/local/apache2/conf # vi httpd.conf
  #ServerName 설정.
  #ServerName www.example.com:80
  ServerName 172.16.30.84:80
  
  #아파치를 실행할 유저와 그룹을 설정 및 기본 한글 등록.
  #Group #-1
  Group nobody
  AddDefaultCharSet EUC-KR
  DefaultLanguage euc_kr
  </IfModule>
  </IfModule>
 4.4 아파치 동작 확인 작업
  # /usr/local/apache2/bin/httpd -t
  Syntax OK
  # /usr/local/apache2/bin # httpd -l
  Compiled in modules:
    core.c     mod_access.c     mod_auth.c
    mod_include.c    mod_log_config.c   mod_env.c
    mod_setenvif.c   prefork.c    http_core.c
    mod_mime.c    mod_status.c    mod_autoindex.c
    mod_asis.c    mod_cgi.c    mod_negotiation.c
    mod_dir.c    mod_imap.c    mod_actions.c
    mod_userdir.c    mod_alias.c
    mod_so.c   <- 이것이 있어야 한다.

  # 연결확인.
  웹에서 http://172.16.30.84/ 확인 => 톰캣이 나오면 성공.
  또는
  sean@casdev2 ~ $ telnet localhost 80
  Trying 127.0.0.1...
  Connected to localhost.
  Escape character is '^]'.
  ^C
  Connection to localhost closed by foreign host.

 4.5  mod_jk2 를 카피(이미 솔라리스용으로 만들어진 so 파일을 이용)
 # tar xvfz jakarta-tomcat-connectors-jk2.0.2-solaris8-apache2.0.43.tar.gz
 # ls
  jakarta-tomcat-connectors-jk2.0.2-solaris8-apache2.0.43/
  jakarta-tomcat-connectors-jk2.0.2-solaris8-apache2.0.43/README.html
  jakarta-tomcat-connectors-jk2.0.2-solaris8-apache2.0.43/mod_jk2-2.0.43.so.asc
  jakarta-tomcat-connectors-jk2.0.2-solaris8-apache2.0.43/mod_jk2-2.0.43.so
  jakarta-tomcat-connectors-jk2.0.2-solaris8-apache2.0.43/jkjni.so.asc
  jakarta-tomcat-connectors-jk2.0.2-solaris8-apache2.0.43/jkjni.so
 # ls /usr/local/apache2/modules 아래에 jk2.so를 카피한다.
  httpd.exp <- 현재 는 1개.
 # cp  mod_jk2-2.0.43.so /usr/local/apache2/modules/

 4.5톰캣 설치하고, ..

 4.6
 # apachectl start 에서 mod를 load하지 못했다.
 ::에러때문에 다시작업 ->mod만들기.
 :http://kltp.kldp.org/stories.php?story=04%2F01%2F07%2F5551551&topic=2 기준참조
 #/usr/local/apache2/bin # ./apachectl start
  Syntax error on line 1045 of /usr/local/apache2/conf/httpd.conf:
  Cannot load /usr/local/apache2/modules/mod_jk2-2.0.43.so into server: ld.so.1: httpd: \xc4\xa1\xb8\xed\xc0\xfb: /usr/local/apache2/modules/mod_jk2-2.0.43.so: \xc0\xdf\xb8\xf8\xb5\xc8 ELF \xb5\xa5\xc0\xcc\xc5\xcd \xc7\xfc\xbd\xc4: ELFDATA2MSB

 상단에 mod를 다운받지 않고, 컴파일해서 만드는 것으로 수정.

반응형

'APPLICATION' 카테고리의 다른 글

리눅스 시스템 시간동기화 하기 ( rdate, ntp )  (0) 2007.11.11
IP Aliasing  (0) 2006.10.11
리눅스 톰캣 아파치 설치  (0) 2006.04.26
솔라리스5.6 에서 톰캣 5.0 설치 하기..  (0) 2006.04.26
Tomcat이란  (0) 2006.04.25
Posted by [PineTree]
APPLICATION2006. 4. 26. 08:36
반응형

RedHat Linux 7.2 에어 Apache 1.3Tomcat 4.1.29 연동 : mod_jk2

권남(kwon37xi@yahoo.co.kr)

RedHat Linux 7.2 에서 기본적으로 제공되는 Apache 1.3Tomcat 4.1.29 연동에 관한 정리.

아파치의 설치

Apache는 레드햇에 의해 기본제공되는 rpm 파일로 설치합니다. 1.3 대라면 버전이 조금 다르다 해도 상관 없다.

업데이트된 버전을 이용해서

# rpm -Uvh apache-devel-1.3.27-3.7.2.rpm
# rpm -Uvh apache-apache-1.3.27-3.7.2.rpm

apachectl start” 명령을 실행하고 브라우저로 이 리눅스에 접속해 보라. 아파치 소개 화면이 뜬다면 성공한 것이다.

아파치를 리눅스를 켤 때마다 자동으로 실행하고 싶다면 ntsysv 명령을 실행하고 httpd 부분에 체크표시를 하면된다. 이후부터는 명령을 치지 않고도 컴퓨터를 켜면 항상 실행된다.

JAVA(J2SDK 설치)

톰캣을 사용하려면 J2SDK가 필요하다. http://java.sun.com/downloads/index.html 에서 리눅스용 rpm을 받는다. 1.3.1 버전을 받았다면 다음과 같이 rpm 위에 .bin 이 붙어있다.

j2sdk-1_3_1_10-linux-i586.rpm.bin

이것을 설치하려면

bin 파일을 rpm으로 바꾸기 - 라이센스 동의를 요구하기 위해서 bin 파일로 배포한 것이다.
# chmod +x j2sdk-1_4_2_03-linux-i586-rpm.bin
파일 실행
# ./j2sdk-1_4_2_03-linux-i586-rpm.bin
라이센스 문서이다. q 를 누르면 문서 읽기를 마칠 수 있다. 라이센스에 동의 하는지 여부를 물어볼 것이다. 동의하면 yes 싫으면 만다.
실질적인 설치
# rpm -Uvh j2sdk-1_4_2_03-linux-i586-rpm.bin

이 자바를 모든 사람들이 동일하게 사용하길 원한다면 /etc/profile.d 에 셸 스크립트를 하나 추가해 주면 된다. 파일 이름은 java.sh 로 한다. 아래는 파일의 내용

JAVA_HOME=/usr/java/jdk1.3.1_10
export JAVA_HOME


PATH=$PATH:$JAVA_HOME/bin

이제 부터 모든 사용자(tomcat 포함)가 이 자바 환경을 사용하게 되었다. 이것이 실제 적용되려면 잠시 로그아웃 했다가 다시 로그인하거나 “. /etc/profile.d/java.sh” 명령을 실행하면 된다. 맨 앞의 점에 주의하라.

톰캣의 설치

톰캣은 http://jakarta.apache.org 에서 받는다.

톰캣설치는 새로운 계정을 만들어서 그 계정에 설치하길 권한다. 안그러고 root에 해도 상관은 없지만 보안상 권장되는 방법은 아님.

계정 만들기
# useradd -d /home/tomcat -m tomcat
# passwd tomcat
여기서 비밀번호를 물어보면 새로운 tomcat 계정을 위한 비밀번호를 입력해준다.


톰캣 계정으로 로그인 하여 톰캣 파일을 /home/tomcat에 복사
# su - tomcat
$ tar xvzf jakarta-tomcat-4.1.29.tar.gz

이것으로 설치는 끝! 톰캣이 작동하는지 보려면

$ jakarta-tomcat-4.1.29/bin/startup.sh

브라우저로 이 리눅스 머신에 접속해본다. 접속할때 포트번호로 8080을 줘야한다. ) http://localhost:8080

고양이 화면이 뜨면 성공한 것이다.

mod_jk2 를 이용한 아파치 1.3과 톰캣의 연동

이제 본론이다. mod_jk2 를 이용해서 아파치 1.3과 톰캣을 연동하면 뒤에 8080을 안붙이고도 JSP웹 컨텍스트에 접속이 가능해진다. HTML과 이미지 같은 정적인 자료는 그에 대해 최적의 성능을 내는 아파치가 담당하고 JSP나 서블릿같은 동적인 부분은 그것을 톰캣이 처리하게 된다.

mod_jk2 는 다음에서 받는다.

http://ftp.apache-kr.org/jakarta/tomcat-connectors/jk2/

솔라리스나 윈도우는 컴파일된 버전을 제공해주기도 한다. 리눅스용은 직접 컴파일해야 한다.

다음을 받는다.

jakarta-tomcat-connectors-jk2-src-current.tar.gz

컴파일을 한다. 컴파일을 하기전에 libtool 패키지가 설치되어 있는지 확인한다. (보통 설치되어 있다)

# rpm -qa | grep libtool
libtool-libs-1.4-8
libtool-1.4-8

저렇게 두 개의 패키지가 설치되어 있으면 된다.

컴파일을 시작해 보자. tomcat 계정으로 로그인 해서 작업한다. 커넥터의 디렉토리명은 자기 것에 맞게 하면 된다.

# su – tomcat
$ cd jakarta-tomcat-connectors-jk2-2.0.2-src/jk/native2
$ ./configure --with-apxs=/usr/sbin/apxs --with-tomcat41=/home/tomcat/jakarta-tomcat-4.1.29
jakarta-tomcat-connectors-jk2-2.0.2-src/jk/build/jk2/apache13 mod_jk2.so 생성됨

생성된 mod_jk2.so 파일을 /etc/httpd/modules 로 복사한다. root 계정으로 해야한다.

# cp jakarta-tomcat-connectors-jk2-2.0.2-src/jk/build/jk2/apache13/mod_jk2.so /etc/httpd/modules/



/etc/httpd/conf/httpd.conf 편집 - 다음 두 줄을 적당한 위치에 추가한다.

LoadModule jk2_module modules/mod_jk2.so
AddModule mod_jk2.c

AddModule 의 경우 아파치 2에서는 불필요하나 1.3에서는 필수이다.

httpd.conf DirectoryIndex 를 찾아 index.jsp 를 추가한다. 다음과 같은 형태가 될 것이다.

<IfModule mod_dir.c>
DirectoryIndex index.html index.htm index.shtml index.php index.php4 index.php3 index.phtml index.cgi index.jsp
</IfModule>

톰캣의 server.xml 살펴보기

기본적으로 톰캣에서는 server.xml 에 아파치와 연동하는 부분이 설정되어 있다. 그래도 혹시 모르니 아래와 같은 부분이 있는지 확인하고 없다면 추가하고 주석처리 되어 있다면 주석을 풀어주라.

<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8009" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="10" debug="0" connectionTimeout="0"
useURIValidationHack="false"
protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>

workers2.properties 작성

파일이름에 주의하라. workers2.properties 이다.

이 파일을 /etc/httpd/conf 디렉토리에 작성해 주고 다음 내용으로 채운다.

[shm:]
file=/etc/httpd/logs/jk2.shm
size=1000000


# Example socket channel, explicitly set port and host.
[channel.socket:localhost:8009]
port=8009
host=127.0.0.1


# define the worker
[ajp13:localhost:8009]
channel=channel.socket:localhost:8009


# Web Context Setup
[uri:/examples/*]
worker=ajp13:localhost:8009


[uri:/examples]
worker=ajp13:localhost:8009

# Web Context Setup 이전 부분은 모두 동일하다. # Web Context Setup 이후 부분이 실제 톰캣의 웹 컨텍스트와 연결하는 부분이다.

기본적으로 톰캣을 설치하면 항상 따라오는 /examples 웹 컨텍스트를 추가했는데, 위와 같이 [uri:/examples/*] 로 설정하면 http://hostname/examples 를 호출했을 때아파치가 자동으로 hostname/examples/ 의 모든 내용을 톰캣의 http://hostname:8080/exmples 로 넘겨준다고 생각하면 된다.

웹 브라우저에서 주소를 칠때 맨 끝에 “/”를 붙여도 되고 안붙여도 되는데 만약 [uri:/examples]를 빼먹으면 브라우저에서 http://hostname/examples 와 같이 “/” 없이 호출할 경우 오류가 발생한다. 모든 웹 컨텍스트에 대해서 [uri:/contextname/*] [uri:/contextname] 을 추가해주도록 한다.

여기서 문제점이 [uri:/contextname/*] 처럼 하면 .jsp나 서블릿 뿐만 아니라 .html 과 이미지등 까지 모두 톰캣이 처리한다는 것이다. jsp 만을 처리하고 나머지는 아파치가 처리하게 하려면 [uri:/contextname/*.jsp], [uri:/contextname/servlet/*] 와 같이 하면 된다.

웹 컨텍스트 설정

톰캣의 웹 컨텍스트와 그것을 아파치에 연동하는 법에 대해서 더 자세히 알아본다.

톰캣에 새로운 웹 컨텍스트를 추가하는 방법은 $CATALINA_HOME/conf/server.xml 에 다음과 같이 해주는 것이다. 주의할 것은 아무데나 추가하면 안된다. 어디에 추가해야 할지 모르겠으면 examples 컨텍스트부분을 찾아 그 위에 추가하면 된다.

<Context path="/newcontext" reloadable="true" docBase="/home/tomcat/projects/newcontext"/>

path=newcontext 는 바로 주소창에 치고 들어갈 경로이다. ) http://localhost/newcontext

docBase는 리눅스상의 *.jspWEB-INF 디렉토리등이 설치된 디렉토리이다.

톰캣을 재시작하면 이제 저 컨텍스트를 사용할 수 있게 된 것이다. 하지막 아직 아파치와는 연동이 안되어있다.

/etc/httpd/conf/workers2.properties 를 열어서 uri 만 삽입해주면된다.

[uri:/newcontext]
worker=ajp13:localhost:8009
[uri:/newcontext/*.jsp]
worker=ajp13:localhost:8009
[uri:/newcontext/servlet/*]
worker=ajp13:localhost:8009

이것으로 workers2.properties 파일의 설정이 끝났다.

위에서도 말했듯이 [uri:/newcontext/*.jsp][uri:/newcontext/servlet/*] 대신에 [uri:/newcontext/*]만 해도 된다. 하지만 이것은 정적인 객체(html, 이미지 등)까지도 톰캣이 처리하게 되어 아파치로 처리시킬 때보다 성능이 떨어지게 된다.

그러므로 .jsp와 서블릿만을 톰캣이 처리하게 설정하는 것이 좋으며, 특히 서블릿의 경우에는 서블릿의 매핑을 모두 /servlet/서블릿이름 이 되게 하는 것이 좋다. 그렇게 하면 위와 같이 [uri:/newcontext/servlet/*]만으로도 서블릿을 처리하게 할 수 있다. 만약 서블릿의 실행 경로를 /servlet/ 이하로 두지 않고 뒤죽 박죽이 되게 하였을 경우에는 각각의 서블릿에 대해 모두 [uri:]를 지정해줘도 된다.

[uri:/newcontext/*]로 했을 경우에는 상관없지만, *.jsp와 서블릿만을 톰캣이 처리하게 했을 경우에는 아파치의 httpd.conf 에서도 정적인 객체 처리를 위해 몇가지 설정이 필요하다.

/etc/httpd/conf/httpd.conf 를 열고 다음을 추가한다.

Alias /newcontext "/home/tomcat/projects/newcontext/"

<Directory "/home/tomcat/projects/newcontext">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

# WEB-INF
접근을 못하게 막음 – 이 부분을 빼먹으면 WEB-INF가 접근 가능하게 되어 보안에 매우 치명적일 수 있다.
<Directory "/home/tomcat/projects/newcontext/WEB-INF">
Order allow,deny
Deny from all
</Directory>

httpd.conf 에서 Alias 를 설정해 주면 [uri:/newcontext] 이 부분이 없어도 “/” 없이 접속 가능하다.

주의!!

디렉토리 이름 등에서 슬래시(/)의 존재 여부에 주의하라. 슬래시 하나에 따라 작동방식이 달라진다.

또한 여기서 /home/tomcat 의 권한이 others 에게 x 권한이 없을 경우(권한 부분의 맨마지막에 x) 아파치는 이 디렉토리에 접근하지 못하게 된다.

, ls -la /home 했을 때 tomcat 디렉토리의 권한은 drwx-----x 와 같이 맨 마지막에 꼭 x 가 있어야 한다. 이렇지 않다면 chmod o+x /home/tomcat 명령을 실행하여 이렇게 만들어라.

둘째로 newcontext 디렉토리의 모든 상위 디렉토리들(여기서는 projects)도 마찬가지이다. 모두 최소한 others 에게 x 권한을 줘야만 한다.

이 문제를 피해갈 수 있는 방법은 톰캣 자체를 아파치와 같은 사용자명(보통은 apache 혹은 nobody 이다. httpd.conf 에서 User 항목을 보라.)과 그룹으로 실행하는 것이다. 그리고 모든 컨텍스트 디렉토리를 아파치와 동일한 사용자 권한으로 만들라.

결론

리눅스/유닉스/윈도우나 아파치 2.0버전도 mod_jk2를 컴파일하는 부분과 AddModule 설정이 없는 것만 빼고 다른 모든 설정이 이와 동일하므로 어렵지 않게 응용 가능하다.

반응형

'APPLICATION' 카테고리의 다른 글

IP Aliasing  (0) 2006.10.11
아파치 +톰캣설정  (0) 2006.04.26
솔라리스5.6 에서 톰캣 5.0 설치 하기..  (0) 2006.04.26
Tomcat이란  (0) 2006.04.25
[펌]리눅스에서 아파치2,톰캣5.5,자바1.5설치  (0) 2006.04.25
Posted by [PineTree]
APPLICATION2006. 4. 26. 08:34
반응형

얼..나만 힘들었는지..

 

중간에 user 가 바뀌어서 한참 헤매었다..

 

그러나 사용자가 바뀌지 않은 상태에서는 꽤나 쉬울듯..

 

순서는 리눅스랑 비슷하다..

 

일단

 

http://mirror.apache.or.kr/jakarta/tomcat-5/v5.0.28/bin/jakarta-tomcat-5.0.28.tar.gz

 

에서 톰캣을 내려 받는다..

 

압축을 풀면..

bin           

conf          

server        

temp          

work
common        

logs          

shared        

webapps

 

폴더가 생기고..

LICENSE       

RELEASE-NOTES 
NOTICE        

RUNNING.txt   

 

의 파일이 생긴다..

 

$TOMCAT_HOME/bin/startup.sh 를 실행하면 톰캣 구동 끝..

 

http://localhost:8080/

으로 들어가봐서 톰캣 로고등이 보이면 성공..

 

각각의 파일과 폴더에 대해 좀더 아는데 까지 적어 보면..

 

LICENSE 는 license 에 대한 말이 있는거 같은데..근데..톰캣은 freeware 아닌가?  license 어쩌구

하는 내용이 들어 있고..

RELEASE-NOTES 에는 톰캣 5.0 에 새로운 feature 나 환경등을 설명해 놓은 파일이고..

NOTICE 는 그냥 공지 정도 들어 있다..

RUNNING.txt 는 톰캣 실행과 종료하는 방법, 그외 간단한 troubleShooting 법이 들어 있다

 

폴더를 보면

 

bin 에는 톰캣을 구동하거나 종료할 수 있는 쉘들과 구동하는데 쓰일것 같은 몇개의 jar 파일이 있다

common 에는 또 3개의 폴더가 있는데 그중 lib 에는 톰캣이 최초로 구동하면서 불러오는 jar 파일들이 있다..톰캣 구동시 불러와야될 jar 파일들이 있다면 여기에 넣어두면 된다..

conf 폴더에는 톰캣 환경 설정 파일들이 있다..

그중 server.xml 과 web.xml 은 톰캣의 port 와 servlet 등 다양한 환경을 설정하는 파일들이기

때문에 중요하게 다뤄야 한다. 이 폴더 안에는 Catalina 라는 폴더가 있는데..그안에 $TOMCAT_HOME/conf/Catalina/localhost 에 보면..servlet Container 를 맵핑하는 파일들을 두고 사용한다

logs 폴더에는 catalina.out 과 localhost_log.2005-02-04.txt 과 같은 파일이 있다..

이 두파일은 약간의 차이가 있는데..확실하게 알면 그때 다시 올린다..

server 와 shared, temp 폴더의 정확한 기능은 잘 알지 못하니 그냥 넘어 가도록 하고..

work 폴더는 톰캣에서 작업한 내용의 캐쉬가 있다..

webapps 는 각각의 application 을 넣어 두는 곳이다..

 

library 를 잡아 주는 곳이 5.0 이전에는 startup.sh 에서 바로 잡아 줬지만..

이젠 catalina.sh 또는 setclasspath.sh 에서 잡아 줘야 한다..

 

정석대로라면 setclasspath.sh 에서 잡아주는 것인데 catalina.sh 에서 잡아줘도 무난하다

setclasspath.sh 에보면


# Set standard CLASSPATH
CLASSPATH="$JAVA_HOME"/lib/tools.jar

 

라는 곳에서 잡아주면 되고..

 

catalina.sh 에서는 마지막으로 classpath 를 호출하는곳 뒤에 붙여 주거나..

중간에 붙여 줘도 상관은 없다..

 

# ----- Execute The Requested Command -----------------------------------------

echo "Using CATALINA_BASE:   $CATALINA_BASE"
echo "Using CATALINA_HOME:   $CATALINA_HOME"
echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR"
echo "Using JAVA_HOME:       $JAVA_HOME"

 

라는 곳 바로 위에 붙여 주는 것이 가장 무난한거 같다..(망구 내생각)

 

그리고 헷갈리기 쉬운것은


CLASSPATH="$CLASSPATH":/tomcat/common/lib/jolt/jolt.jar:/tomcat/common/lib/jolt/joltjse.jar:/tomcat/common/lib/jolt/joltwls.jar:/tomcat/common/lib/servlet-api.jar 에서 보이는 것처럼 각각의 path 사이에 : (콜론) 이 들어 간다..세미콜론이 아니다..

 

이것저것 다 잡아 주기 귀찮으면 걍 common/lib 에 각각의 jar 파일들을 

넣어주면 톰캣이 구동되면서 가장 먼저 불러 오기 때문에 classpath 안잡아줘도

걍 올라오고..그것도 귀찮으면 각 application 안에

WEB-INF/lib 을 만들어 주거나 해서 여기 안에 넣어줘도 상관은 없다..

 

P.S

처음에는 솔라리스 5.9 에서 시작했는데..웬일인지 servlet 이 제대로 동작하지 않았다..

같은 파일을 5.9와 5.6 에서 같이 했는데..5.9에서는 servlet 이 제대로 동작하지 않는 반면

5.6에서는 정상작동 하였다..

64bit 와 32bit 차이인지도 모르겠고 tar 의 문제인지도 모르겠다..

반응형

'APPLICATION' 카테고리의 다른 글

IP Aliasing  (0) 2006.10.11
아파치 +톰캣설정  (0) 2006.04.26
리눅스 톰캣 아파치 설치  (0) 2006.04.26
Tomcat이란  (0) 2006.04.25
[펌]리눅스에서 아파치2,톰캣5.5,자바1.5설치  (0) 2006.04.25
Posted by [PineTree]
APPLICATION2006. 4. 25. 02:42
반응형

servlet,jsp 는 asp,php와 마찬가지로, 서버에서 DB에 접근한다든지, 특정한 로직을 돌리기위해 JAVA를 언어로 사용하는 Server Side Script 입니다



이렇게 구성된 페이지가 서버에서 돌아가면 클라이언트의 브라우져에서는 html형식으로 보이게 되죠(확장자명이 jsp라고 하더라도 소스보기를 하면 HTML만 보입니다)



톰캣은 이렇게 웹서버 상에서 자바코드를 이해하기 위한 엔진 혹은 컨테이너입니다
다시 말하면 서블릿,jsp, 빈즈 같은 자바코드를 이해하기 위해서는 톰캣같은 자바를 이해하는 엔진이 있어야 한다는 말이죠



다른 자바를 해석할수 있는 웹서버나 엔진에 비해 톰캣이 가지는 장점중 가장 큰부분은 바로 가격대 성능비입니다UNIX기반(리눅스,SUN OS등을
포함한)에서 아파치랑 톰캣이 궁합이 잘맞기 때문에 자바기반 웹서버를 구성할때 저가용으로 리눅스,아파치,톰캣 조합을 많이 사용합니다

사실 모두 무료배포기 때문에 라이센스에 대한 부담없이 누구나 사용할수 있습니다



이제 서블릿,JSP를 이야기 해보겠습니다어떤 웹프로그램이든 순수한 프로그램언어로 이루어진것이 아니라 클라이언트언어인 HTML이 혼용되어있는데 문제는 톰캣은 자바파일만 이해할수
있습니다



이렇게 톰캣이 이해할수 있게 구성되어있는 순수 자바코드로만 이루어진 웹서버용 클레스가 Servlet이라 할수 있습니다 개발자가 Servlet으로 코딩을 한후 웹서버에 올려놓으면 클라이언트들이 브라우저를 통해 볼때는 HTML형식의 페이지를 볼수 있죠

하지만 Servlet은 다른 웹프로그램에 비해 코딩이 복잡하고, 많이 번거롭죠



그래서 나온것이 JSP입니다 JSP는 HTML 기반페이지에 자바로직이 필요한부분에 블록을 삽입해서 그 블록안에서만 구동하게 짜면되죠 Servlet에 비해 엄청 간단하게 프로그래밍을 할수
있죠



이쯤이면 이런의문이 생길것입니다



"처음 톰캣은 자바구문만 해석할수 있다고 했는데, 그렇게 HTML과 혼횽했을때 그것을 구분해서 이해하는가."



그문에는 톰캣의 독특한 컴파일 과정에 있습니다 JSP페이지는 서블릿 형태로 일단 변형되어 컴파일 되죠 다시 말하면 html태그들은 화면에 뿌려라는 뜻의 print() 메소드로다 뿌려주는 겁니다 그런형태로 완벽한 자바파일로 변형후 컴파일 되죠



jsp,servlet의 장점이라면 자바자체의 장점과 동일합니다

 

아파치와 톰캣을 연동하는 이유

 

톰캣 자체가 서블릿 컨테이너 이기 때문에 jsp파일을 컴파일 해서 처리 할수 있습니다.
단지 jsp를 사용할때 아파치와 자주 연동하는 것은 웹서비스를 하는데 있어서 resource의 서비스는 아파치로 하고 톰캣은 본연의 임무인 서블릿 컨테이너의 역할만 함으로써 톰캣의 부하를 줄이는데 있고 그이외에 톰캣에서는 할 수 없는 부가적인 웹서비스를 지원하기 위하여 아파치를 연동해서 사용하기도 합니다.

반응형

'APPLICATION' 카테고리의 다른 글

IP Aliasing  (0) 2006.10.11
아파치 +톰캣설정  (0) 2006.04.26
리눅스 톰캣 아파치 설치  (0) 2006.04.26
솔라리스5.6 에서 톰캣 5.0 설치 하기..  (0) 2006.04.26
[펌]리눅스에서 아파치2,톰캣5.5,자바1.5설치  (0) 2006.04.25
Posted by [PineTree]
APPLICATION2006. 4. 25. 01:02
반응형

mod_jk를 사용해서 아파치 2 와 톰캣 5.5를 연동하기 

1: 아파치 2를 설치한다.

httpd-2.0.55의 소스를 받아 설치한다.
./configure --enable-so --enable-mods-shared=most --prefix=/usr/local/apache2.
make
make install

2: 자바(JDK 1.5이상)를 설치한다.

/usr/local/java 등의 위치에 설치하고, /etc/profile 제일 아랫줄에
export JAVA_HOME=/usr/java/jdk1.5.0_05
라고 추가하고,
source /etc/profile 명령을 실행해서 변경을 적용시킨다.


3: 톰캣 5.5 설치

apache-tomcat-5.5.12.tar.gz 를 다운받아 /usr/local 에 놓고 root 권한으로 아래와 같이 실행한다.

cd /usr/local
tar xvfz apache-tomcat-5.5.12
ln -s /usr/local/apache-tomcat-5.5.12 /usr/local/tomcat
groupadd tomcat
useradd tomcat -g tomcat -d /usr/local/tomcat tomcat
chown -R tomcat.tomcat /usr/local/apache-tomcat-5.5.12 /usr/local/tomcat

/etc/profile에 아래의 내용을 추가하고 적용한다.

export PATH=$PATH:/usr/local/bin:/usr/local/tomcat/bin
export JAVA_HOME=/usr/java/jdk1.5.0_05
export CATALINA_HOME=/usr/local/tomcat

위의 내용을 추가했으면,

source /usr/profile을 실행


톰캣 서버 실행 테스트

톰캣 디렉토리의 bin디렉토리가 PATH에 포함된 것을 확인하고,
startup.sh
을 실행하면 톰캣이 실행된다.

ps -def | grep tomcat
이라고 실행할 때
tomcat 18591 1 88 06:40 pts/0
와 비슷한 내용이 보이면 톰캣 서버가 실행된 것이다.
 
shutdown.sh
을 실행하여 톰캣 서버를 멈추고서, 다시
ps -def | grep tomcat

을 실행하면 위의 내용이 보이지 않게 된다.


4: mod_jk 설치하기
 jakarta-tomcat-connectors-1.2.14.1-src.tar.gz 를 다운받고 아래처럼 실행한다.

cd jakarta-tomcat-connectors-1.2.14.1-src/jk/native
./buildconf.sh
./configure --with-apxs=/usr/local/apache2/bin/apxs
make

make install

mod_jk.so 가 /usr/local/apache2/modules 디렉토리 안에 있고, 권한은 755로 설정되어있는지 확인한다..

5: 아파치를 톰캣에 연결하기

/usr/local/apache2/conf 디렉토리에 workers.properties 라는 이름의 파일을 만들고 아래의 내용을 입력한 후 저장한다.

workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/java/jdk1.5.0_05
ps=/
worker.list=default

worker.default.port=8009
worker.default.host=localhost
worker.default.type=ajp13
worker.default.lbfactor=1

httpd.conf 에 아래의 내용을 추가한다.
#
# Mod_jk settings
#
# Load mod_jk module
LoadModule jk_module modules/mod_jk.so
# Where to find workers.properties
JkWorkersFile conf/workers.properties
# Where to put jk logs
JkLogFile logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel debug
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
# Send JSPs for context /jsp-examples to worker named default
JkMount /jsp-examples/*.jsp default
# Send servlets-examples to worker named default
JkMount /servlets-examples/* default

Keep editing httpd.conf and add following Alias directives (for example under the entry for the icon Alias). These directives tell Apache to map /jsp-examples and servlets-examples to the sample directories that ship with Tomcat.

# Static files in the jsp-examples webapp are served by apache
Alias /jsp-examples "/usr/local/tomcat/webapps/jsp-examples/"

Options FollowSymLinks
AllowOverride None
Allow from all


# The following line prohibits users from directly access WEB-INF

AllowOverride None
deny from all


# Static files in the servlets-examples webapp are served by apache
Alias /servlets-examples "/usr/local/tomcat/webapps/servlets-examples/"

Options FollowSymLinks
AllowOverride None
Allow from all


# The following line prohibits users from directly access WEB-INF

AllowOverride None
deny from all


아파치를 재구동한다.

http://Web_server_name_or_IP:8080에 접속해 본다.

http://Web_server_name_or_IP/jsp-examples

http://Web_server_name_or_IP/servlets-examples 에 접속하여 연동을 확인한다.

내용출처 : [기타] 인터넷 : http://agiletesting.blogspot.com/2005/10/configuring-apache-2-and-tomcat-55.html 의 내용을 번역한 것임.
반응형

'APPLICATION' 카테고리의 다른 글

IP Aliasing  (0) 2006.10.11
아파치 +톰캣설정  (0) 2006.04.26
리눅스 톰캣 아파치 설치  (0) 2006.04.26
솔라리스5.6 에서 톰캣 5.0 설치 하기..  (0) 2006.04.26
Tomcat이란  (0) 2006.04.25
Posted by [PineTree]
APPLICATION/DNS2004. 6. 2. 05:38
반응형
DNS 설정 및 BIND 소스 설치
 

1. http://domain.nic.or.kr/에서 도메인 등록

⼗ 등록할 도메인 chambong.co.kr

⼗ 1차 네임서버 203.234.28.139

⼗ 2차 네임서버 168.126.63.1(2) // 코넷 네임서버 이용!








2. DNS 서버용 데몬 - BIND 소스 설치

[1] 자신의 리눅스 시스템에 BIND가 설치되어 있다면 제거한다.

# rpm -qa | grep bind

bind-x.x.x

bind-utils-x.x.x

# rpm -e bind-x.x.x

# rpm -e bind-utils-x.x.x

# rpm -qa | grep caching

caching-nameserver-x.x.x

# rpm -e caching

# rpm -qa | grep bind

#

# rpm -qa | grep caching

#

[2] http://www.isc.org/products/BIND/에서 Current release 확인 후 소스를 /usr/local/src 에 다운 받아 푼다.

[3] 소스 컴파일

# pwd

/usr/local/bind

# ls

Makefile src/

# cd src

# pwd

/usr/local/bind/src

# make clean

# make depend

# make allchambonglinux Guide 1.0

# ls .s*

.settings .systype

# rm -rf .settings

# make install

[4] 아래 디렉토리 필히 확인!

# ls

include/ lib/

make install 명령을 내리면 /usr/local/bind 디렉토리에 Library 와 Header 파일이, 그 외는 /usr/bin, /usr/sbin 에 설치됨! 데몬파일은 /usr/sbin/named 파일로 설치됨!

현재 이 상태에서는 /etc/named.conf 파일이 없기 때문에 데몬을 구동하지 못한다. 따라서 이 파일을 생성해 주고 필요한 정보를 입력해 주어야 한다.

파일위치 ftp://ftp.rs.internic.net/domain/ 에서 named.ca, named.cache, named.root 중 하나만 /var/named/ 디렉토리에 다운로드 한다. 2 ~ 3달에 한번씩 업데이트 여부를 확인한다(여기서는 named.ca를 사용함).








3. DNS 설정

[1] 네임서버 설정(확인)

#vi /etc/resolv.conf

search chambong.co.kr

nameserver 203.234.28.139 // 기본값

nameserver 168.126.63.1


[2] /etc/named.conf(BIND 8.X 이상에서의 설정 파일)

# vi /etc/named.conf

options {

directory "/var/named"; // 웹호스팅을 위한 베이스 디렉토리

dump-file "/var/tmp/named_dump.db"; // Dump 파일 디렉토리

statistics-file "/var/tmp/bamed.stats"; // 접속통계를 담아두는 파일

pid-file "/var/run/named.pid"; // 프로세서 ID 정보 기록경로

};

// 필요하지 않은 로그파일의 삭제를 위한 설정

logging {

category lame-servers { nulll; };

category cname { nulll; };

category response-checks { nulll; };

category notify { nulll; };

};

// 캐쉬 파일을 위한 설정

zone "." IN {

type hint;

file "named.ca";

};

// localhost(내부 접속용)를 위한 설정

zone "0.0.127.in-addr.arpa" IN {

type master;

file "named.local";

};

// Forward Zone 파일

zone "chambong.co.kr" IN {

type master;

file "zone-chambong.co.kr";

};

// Reverse Zone 파일

zone "28.234.203.in-addr.arpa" IN {

type master;

file "zone-28.234.203";

};


[3] /var/named/named.ca

편집할 필요가 없음!

[4] /var/named/named.local

# vi /var/named/named.local

@ IN SOA localhost. root.localhost. (

1997022700 ; Serial

28800 ; Refresh

14400 ; Retry

3600000 ; Expire

86400 ) ; Minimum

IN NS localhost.

; IP -> 이름 변환

; 1은 localhost(127.0.0.1)의 마지막 부분!

1 IN PTR localhost.


[5] Forward Zone 파일 설정 - /var/named/zone-chambong.co.kr

# vi /var/named/zone-chambong.co.kr

// www.chambong.co.kr ns.chambong.co.kr mail.chambong.co.kr study.chambong.co.kr

@ IN SOA ns.chambong.co.kr. root.chambong.co.kr. (

2000011504 ; Serial

28800 ; Refresh

14400 ; Retry

3600000 ; Expire

86400 ) ; Minimum

IN NS ns.chambong.co.kr.

IN MX 10 mail.chambong.co.kr.

ns IN A 203.234.28.139

mail IN CNAME @

www IN CNAME @

study IN CNAME @


[6] Reverse Zone 파일 설정 - /var/named/zone-28.234.203

# vi /var/named/zone-28.234.203

@ IN SOA ns.chambong.co.kr. root.chambong.co.kr. (

2000011504 ; Serial

28800 ; Refresh

14400 ; Retry

3600000 ; Expire

86400 ) ; Minimum

IN NS ns.chambong.co.kr.

; IP -> 이름 변환

; 139는 IP(203.234.28.139)의 마지막 부분!

139 IN PTR www.chambong.co.kr.

139 IN PTR ns.chambong.co.kr.

139 IN PTR mail.chambong.co.kr.

139 IN PTR study.chambong.co.kr.










4. 네임서버 테스트

[1] BIND 시작 [종료, 재시작]

# ndc start [stop, restart]

[2] 네임서버 테스팅

# nslookup

Default Server: ns.chambong.co.kr // 3 [1] 의 기본값의 네임서버

Address: 203.234.28.139

> www.chambong.co.kr

Server: ns.chambong.co.kr

Address: 203.234.28.139

name: www.chambong.co.kr

Address: 203.234.28.139

> exit

#

 

 

추가

 

OS기동시에 bind 를 기동 하자

# vi /etc/rc.local ## bind 9 if [ -f /usr/local/bind9/sbin/named ]; 
then /usr/local/bind9/sbin/named -u bind -c /etc/named.conf echo "bind 9.2.1 start" fi 
반응형

'APPLICATION > DNS' 카테고리의 다른 글

DNS 서버 정보  (0) 2011.05.16
DNS 서버 설정 검사하기  (0) 2009.09.17
[펌] DNS 셋팅  (0) 2004.06.02
Posted by [PineTree]
APPLICATION/DNS2004. 6. 2. 05:37
반응형

Bind9 설정에서 네임서버 셋팅에 대해 정리 해봅니다.

 

root shell> vi /etc/resolve.conf

 

nameserver 네임서버로 지정한 호스트의 ip를 적어 줍니다.

호스트의 등록은 도메인 등록기관에서 행하실수 있습니다..

 

/wq: 저장하고 빠져 나옵니다. 

 

root shell>vi /etc/name.conf

 

zone 화일을 구성하는곳입니다.

마스터 네임서버에 대한 설정을 적습니다.

 

본인의 Ip 를 211.345.567.890

인버스 ip를 지정한다 ..211.xxx.1.2라면 ... 1.xxx.211 이런식으로 꺼꾸로 쓴다..마지막 2는 뺀다.

IP 대역폭을 정하는 곳이다.

 

zone "567.345.211.in-addr.arpa" IN { type master; file "네임서버명.rev"; allow-update { none; };};

IP대역을 세팅한다...

 

zone "네임서버도메인" { type master; file "도메인.zone"; allow-update { none; }; };

정도 로 해주시면 됩니다..

 

도메인이 추가될때마다 여기서 설정을 해주시면 됩니다...도메인추가시는

 

zone "도메인네임" { type master; file "도메이네임.zone"; allow-update { none; }; };

정도로 추가해주시면 됩니다.

 

root shell> cp /var/named/localhost.zone /var/named/네임서버도메인.zone

기본 정보를 카피하여 편집합니다.

 

root shell>vi /var/named/네임서버도메인.zone

 

$TTL 86400
@       IN      SOA     ns.xxxx.xxx.   webmaster.xxx.xxx.  ( 
                                      20040422   ; Serial
                                      10800      ; Refresh
                                      3600       ; Retry
                                      3600000     ; Expire
                                      43200      ; Minimum
                                      )
;NameServer Setting Hun~ hahaha

        IN      NS      ns.xxxx.xxx.
        IN      A       211.33.xxx.xxx
        MX      10      mail

        IN      HINFO   "INTEL Pentium  "redhat"


; Host name & Infomations

 ns                          IN       A            211.33.xxx.xxx
 www                      IN       CNAME        @
 mail                        IN       A            211.33.xxx.xxx

 

 

 

mail 설정과 ns 및 www를 잡아 주었다 ..

여기서 www부분의 CNAME 를 지정해 주지 않게 되면 name.conf화일에서 도메인을 2번 설정해주어야 한다.. www.xxx.xxx 와 xxx.xxx 이렇게 하는 수고를 덜기 위해서 이다..

 

MX10 mail 부분은 zone 화일을 도메인을 추가시마다 작성하지 않고 자동으로 잡기 위해서

이러한 설정을 사용하였으며 .. 서브도메인을 사용하거나 기타 도메인의 특성을 살릴려면.

zone 화일을 따로 만들기를 권한다.

 

본인의 name.conf 형식은

 

zone "nameserver.net" { type master; file "nameserver.zone"; allow-update { none; }; };

 

zone "도메인1.com" { type master; file "nameserver.zone"; allow-update { none; }; };

 

zone "도메인2.com" { type master; file "nameserver.zone"; allow-update { none; }; };

 

....이런식으로 zone 화일을 하나만 두고 쓴다 ..그러나

 

zone "도메인3.com" { type master; file "xxx.zone"; allow-update { none; }; };

의 경우가 있는데 이는 언급한 바와 같이 서브 도메인이나 기타 설정이 상이할경우에 쓴다...

 

 

네임서버명.rev 화일을 만들어 보기로 한다.

네임서버명.rev는 처음에 셋팅했던 name.conf에서 설정해주었다...

 

root shell> cp/var/named/localhost.rev /var/named/네임서버명.rev

 

$TTL 86400
@       IN      SOA     ns.xxx.xxx. webmaster.xxx.xxxt.  ( 
                                20040422 ; Serial
                                10800      ; Refresh
                                3600       ; Retry
                                3600000     ; Expire
                                43200      ; Minimum
                                )
; Name Server
 
                    IN      NS      ns.xxx.xxx.
                    IN      MX 10   mail

  166             IN      PTR    xxx.xxx.

 

 

여기서 PTR 부분에 아까 생략했던 IP의 마지막 부분을 적어 준다..

또 같은 대역에서 다른 서비스를 하고 있는 IP가 있다면 여기서 셋팅한다.

 

 166             IN      PTR    xxx.xxx.

 160             IN      PTR    ftp.xxx.xxx.

 

이런식이다..

 

이것으로 nameserver의 허접한 ^^;; 강의 였지만 세팅을 마무리 지어보기로 한다 ^^;;;

 

참...마지막으로 nameserver 에 세팅되었다고 끝나는것이 아니다..

 

APACHE에 설정을 잡아 주어야 도메인들이 연결되는것이다.

 

NameVirtualHost xxx.xxx.xxx.xxx  # 이곳에 자신의 호스트인 IP를 적는다.

 

<VirtualHost xxx.xxx.xxx.xxx>
        ServerName 도메인주소 
        ServerAdmin webmaster@xxx.xxx
        ServerAlias www.xxx.xxx

        DocumentRoot /home/xxx/public_html
</VirtualHost>

 

이렇게 마무리까지 지어 준다면 ...

 

만약 2차 도메인이 있다면 2차 도메인 부분도 ..세팅해준다.

 

<VirtualHost xxx.xxx.xxx.xxx>
        ServerName 2차도메인주소 
        ServerAdmin webmaster@xxx.xxx
        DocumentRoot /home/xxx/public_html
</VirtualHost>

 

 

/wq 하고 나오면 ...네임서버의 셋팅은 어느정도 마무리 되었다고 본다

----끝-----

반응형

'APPLICATION > DNS' 카테고리의 다른 글

DNS 서버 정보  (0) 2011.05.16
DNS 서버 설정 검사하기  (0) 2009.09.17
[펌] DNS 설정 및 BIND 소스 설치  (0) 2004.06.02
Posted by [PineTree]