server2013. 3. 5. 11:55

■ server.xml에 의한 Tomcat의 기본 설정

 

$CATALINA_HOME/conf/server.xml은 Tomcat의 메인 설정 파일로 Tomcat 기동시에 참조 된다.

$CATALINA_HOME/conf/ 디렉토리에는 디폴트 server.xml 이외에 최소한의 설정만으로 구성된

server-minimal.xml이 준비되어 있다. 새로 서버를 설정하고자 할 경우에는 server-minimal,xml의 이름을 변경하여 사용하면 편리하다.

 

 

■ server.xml의 구조

 

Tomcat은 몇개의 구성요소로 이루어져 있으며, server.xml에서는 XML의 요소를 통해 구성요소를 정의하고 있다. server.xml의 요소는 다음과 같이 트리구조를 갖고 있다.

<Server>

      |    

      +---<Service>

                  |

                  +---<Connector>

                  |

                  +---<Engine>

                              |

                              +---<DefaultContext>

                              |

                              +---<Realm>

                              |

                              +---<Logger>

                              |

                              +---<Host>

                                          |

                                          +---<Context>

                                          |

                                          +---<Value>

                                          |

                                          +---<Realm>

                                          |

                                          +---<Logger>

 

상위의 속성은 자동적으로 하위의 요소에 계승된다. 예를 들어 <Host>의 구성요소 <Logger>의 속성은 아무것도 지정하지 않은 경우 <Engine>의 구성요소 <Logger>의 설정이 사용된다. 변경이 필요한 경우에는 <Host>의 구성요소 <Logger>에 별도의 설정을 함으로서 상위의 설정을 덮어 쓸수 있다.

 

1. <Server>요소

Tomcat 서버 구성요소의 정의 부분이다. 기본값은 <Server port="8005" shutdown="SHUTDOWN"> 로 되어 있으며, 포트 8005를 감시하고 shutdown 명령어를 접수하도록 설정되어 있다. 서버에서는 복수의 서비스를 관련 지울 수 있다.

 

2. <Service>요소

<Service> 구성요소를 정의하고 있다. <Service>는 뒤에 기술 할 <Engine>과 그것에 관련된 모든 <Connector>를 그룹화 한 것이다. 기본값은  <Service name="Catalina">로 되어 있다.

name 속성에서 Catalina 라고 하는 이름으로 서비스가 정의 되어 있고, 에러 로그 및 관리툴은 이 이름으로 식별합니다.하나의 서버에 복수의 서비스를 정의하는 경우, 다른 name 속성을 기입할 필요가 있다.

<Service>는 <Engine>과 하나 이상의 <Connector>를 관련짓는 것이 가능하다. <Service>와 <Engine>의 관계는 1:1 이다.

 

3. <Service>요소

<Engine>은 servlet 컨테이너의 인스턴스를 표시하며, <Connector>로부터 보내진 요구를 처리한다. 기본값은 <Engine name="Catalina" defaultHost="localhost">로 되어 있다.

name 속성은 <Engine>의 이름을 표시하며, 에러 로그 및 관리툴은 이 이름으로 <Engine>을 식별한다.

defaultHost 속성은 server.xml에 정의 되어 있지 않은 <Host>에 요구가 있을 경우 발송되는 가상호스트를 지정한다. <Engine>에는 하나 이상의 <Host>가 관련지어져 있다.

 

4. <Connector>요소

요구를 <Engine>에 건네 주는 역할을 하는것이 <Connector>다. <Service>는 하나 이상의 <Connector>를 갖을 필요가 있다.

사용자는 HTTP 또는 HTTPS/SSL등 여러가지 방법으로 <Engine>에 요구를 보낸다. 이것들의 접속 요건의 처리는 <Connector>구성요소에 맡겨진다. 각 프로토콜에 대해 복수의 <Connector>를 갖는 것으로서 어떤 접속에서 요구가 보내져와도 <Engine>이 동일하게 처리하고, 응답을 <Connector>에 맡길 수 있다.

Tomcat에는 몇개의 표준 <connector>가 탑재되어 있으며, 기본값은 HTTP 1.1 <Connector>와 AJP <Connector>가 준비되어 있다.

 

5. <DefaultContext>요소

모든 <Context>공통의 정의부. 기본적으로는 설정되어 있지 않다.

 

6. <Realm>요소

<Realm>는 보안을 위해 role명과 사용자명, 비밀번호의 맵핑을 외부의 데이타베이스로 부터 가져오는 장치다. Tomcat은 UserDataBase, Memory, JDBC, JNDI등 몇개의 <Realm>을 가지고 있다.

각 <Realm>의 차이는 어디로 부터 정보를 가져왔는가의 차이밖에 없다. 기본값으로는 UserDataBsase이외의 <Realm>은 주석 처리되어 무효로 되어 있다.

 

7. <Logger>요소

<Logger>는 로그파일의 작성 방법을 설정 한다. <Logger>는 server.xml 구조에서 보듯이 <Engine>레벨에서 설정할 수 있다.

<Logger className="org.apache.catalina.logger.FileLogger">

        prefix="server-log." suffix=".txt"
        timestamp="true"/>

 

위의 <예>에서는 Tomcat의 FileLogger 클래스를 사용, prefix, suffix, timestamp 속성에서 로그파일명을 정의하고 있다. 이 경우, 로그파일은 [server-log.2008_08_04.txt]과 같은 형식으로 $CATALINA_HOME/logs 디렉토리에 출력된다.

 

8. <Host> 와 <Context>요소

<Engine>에 관련된 가상호스트를 정의 한다. 기본값으로는 다음과 같이 되어 있다.

 <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"></host>

 

 - name 속성이 localhost 이므로 localhost:8080 으로 접근할 수 있다. Tomcat 단독 운영시 name 속성에 도메인을 적어서 각 서비스를 분기 할 수 있다.

 - 먼저 톰캣의 기본 Document Root 는 webapps/ROOT 이며, appBase 는 $CATALINA_HOME 을 상대경로를 기본 인자로 받는다.

 - <Host>에서 <Context> 태그가 생략될 경우 $CATALINA_HOME/webapps/ROOT 가 된다.

 - <Host>에서 <Context> 태그가 있을 경우 appBase(절대경로 가능) 하위 디렉토리를 Document Root 로 지정할 수 있다. 

  -- 상대 경로를 이용: <Host  name="localhost" appBase="webapps" ...<Context path="" docBase="test" reloadable="true"/></host>

  >> 이때 Document Root 는 $CATALINA_HOME/webapps/test가 된다. (appBase, docBase 둘다 절대 경로 사용 가능)

 

2개의 호스트<Host>

<!--Host name="localhost" 는 웹브라우져에 http://localhost:8080/ 접근 시 $CATALINA_HOME/webapps/ROOT 에 있는 docroot 를 기준으로 하고 -->

<Host name="localhost" appBase="webapps" autoDeploy="true" unpackWARs="true">     

</Host>

 

<!--Host name="testhost" 는 웹브라우져에 http://testhost:8080/ 라고 접근 시 아래 Context 기준으로 찾아간다.-->

<Host name="testhost">      

  <Context docBase="C:test1\WebContent" path="/" reloadable="true"/>

</Host>

 

 

1개의 콘텍스트<Context > 변형

<Host name="localhost" appBase="C:/webapps/htdocs" unpackWARs="true" autoDeploy="true">
    <Context path="/api" docBase="/apidir" reloadble="true" />
</Host>
 http://localhost:8080/api/main.jsp 호출 시 "C:/webapps/htdocs/apidir/main.jsp" 접근 
 http://localhost:8080/main.jsp 호출 시 "C:/webapps/htdocs/main.jsp" 접근 

 

2개의 콘텍스트<Context >

<Host name="localhost" appBase="C:/webapps" unpackWARs="true" autoDeploy="true">

  <!-- http://localhost/main.jsp 호출 시 C:/webapps/htdocs/main.jsp 접근 -->
  <Context path="/" docBase="/htdocs" reloadble="true" />

 

  <!-- http://localhost/test/main.jsp 호출 시 C:/webapps/testdir/main.jsp 접근 -->
  <Context path="/test" docBase="/testdir" reloadble="true" />

</Host>

 

* <Context path="" path 요소에 아무것도 입력치 않으면 모든 요청을 받음,

따라서 하나의 호스트 사용 시 1개의 콘텍스트<Context > 변형처럼 사용 하지 않을땐 "/" 대신 "" 를 사용 하여야 함

 

* xmlValidation="false" xmlNamespaceAware="false" 같은 경우 Host 속성이 아니고 Context의 속성으로 주의 하시길

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">

많은 사이트나에서 보면 위와 같이 사용 하는데 잘못된 사용법이다

 

 

9. <Value>요소

<Value>는 Tomcat 특유의 기능이다. <Value>는 상위 구성요소로의 필터 처리를 담당한다. <Engine>, <Host>, <Context>와 관련짓는 것이 가능하다. 또, Tomcat에는 표준으로 다음과 같은 몇개의 <Value>가 준비되어 있다.

 

 - AccessLogValve

<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="server-log-" fileDateFormat="yyyy-MM-dd" suffix=".txt"/>

AccessLogValve 의 <예>에서는 $CATALINA_HOME/logs 디렉토리에 server-log-2008-08-04.txt 의 형식으로 로그파일을 작성한다.

 

- RemoteAccessValve

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127.0.0.1,192.168.0.1" />

RemoteAccessValue는 접근을 IP주소 단위로 제한한다. 지정주소에서의 접근을 허가, 거부를 설정할 수 있다.

<예>에서는 로컬 IP주소(127.0.0.1), 192.168.0.1로 부터의 접근을 허가하고 있다.

또 RemoteHostValue를 사용하면 호스트 단위로 접근제한을 설정할 수 있다.

 

- SingleSignOnValue

<Valve className="org.apache.catalina.authenticator.SingleSignOn"/> 

SingleSignOnValue는 요구와 응답의 헤더와 쿠키를 <Logger>로 설정한 로그파일이 작성된다.

 

- RequestDumpValue

<Valve className="org.apache.catalina.valves.RequestDumperValve"/>

 

 

 

10. <Context>요소

<Host>에는 웹어플리케이션의 복수개의 <Context>가 관련지어져 있다.

<Context>요소에는 웹어플리케이션의 일련의 설정 프로퍼티가 들어간다.(웹어플리케이션마다에 설정)

 

Tomcat 설정과 관련된 자세한 내용은 Tomcat 홈페이지에서 확인하시기 바랍니다.

 

<Host name="localhost" appBase="webapps" autoDeploy="true" unpackWARs="true">      

</Host>

 

<Host name="testhost">      

  <Context docBase="C:test1\WebContent" path="/" reloadable="true"/>

</Host>

 

Host name="localhost" 는 웹브라우져에 http://localhost:8080/ 라고 접근 시 $CATALINA_HOME/webapps 에 있는 docroot 를 기준으로 하고

 

Host name="testhost" 는 웹브라우져에 http://testhost:8080/ 라고 접근 시 아래 Context 기준으로 찾아간다.

 

 

 

 

 

Posted by 나웃기면백원
DB2013. 2. 6. 11:16

MYSQL 설치

 

다운로드

http://www.mysql.com/downloads/

 

 

곤솔접속

%MYSQL%/bin 경로 이동 후


%MYSQL%\bin>mysql -u root -p  <- 입력

Enter password:******

 

mysql>SHOW DATABASES;

mysql>USE sakila;
SELECT * FROM actor LIMIT 0, 10;


 

     - TOOL(SQLyog)  

불편하니 TOOL(SQLyog)을 사용하자.

 

다운로드 

http://code.google.com/p/sqlyog/downloads/list



- 파일 읽어 실행하기

mysql>USE sakila;

mysql>source C:/test.sql;         ex) C:/test.sql '\'가 아니고 '/'다.




Posted by 나웃기면백원
server2012. 9. 14. 18:26

65535 bytes limit 에러는 JSP파일을 컴파일한 파일사이즈가 64k를 초과한 경우 발생함.

 

web.xml 에 <servlet> <!-- [[ add --> ...  <!-- add ]] --> 부분을 추가 한다.

 

- web.xml

  <servlet>
    <servlet-name>jsp</servlet-name> <!-- servlet-name  꼭 JSP 인것 확인 -->

    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>

    <init-param>
     <param-name>fork</param-name>
     <param-value>false</param-value>
 </init-param>
    <init-param>
     <param-name>xpoweredBy</param-name>
     <param-value>false</param-value>
 </init-param>

  

   <!-- [[ add --> 

   <init-param>

    <param-name>mappedfile</param-name>
    <param-value>false</param-value>

 </init-param>

       <!-- add ]] -->

          <load-on-startup>3</load-on-startup>

        </servlet>

 

Posted by 나웃기면백원