Tag Archives: 아파치

[Linux/Apache] 기본(Default) VirtualHost 설정하기

가상호스트를 사용하기 위해 <VirtualHost> 설정을 하게됩니다. 그리고 이름 기반의 가상 호스팅을 하기 위해 다음의 설정을 사용합니다.

[code]NameVirtualHost *:80[/code]
* 대신에 특정 아이피를 할당할 수 있지만 그것은 여기서는 논외로 하겠습니다. 위의 설정을 하는 순간부터 모든 웹서버로의 요청은 가상호스트가 받게 됩니다.

하지만 여기서 가상호스트로 설정되지 않은 정보를 받을때는 어떤 Default한 경로로 연결하고 싶다면 어떻게 하는게 좋을까요?

우선 기본적으로 아파치의 설정은 가상호스트 설정이 되어있지 않은 요청을 받았을 경우 가장 최상단에 설정된 가상호스트에 자동 연결 합니다.

이는 좋은 일일수도 나쁜일일수도 있겠네요. 그렇다면 가상호스트 연결이 되어있지 않은 요청이 올 경우 예를 들어 에러페이지가 들어있는 경로로 연결한다거나 하고 싶을때는 어떻게 할까요?

바로 _default_ 지시자가 있습니다.

[code]<VirtualHost _default_:80>
    DocumentRoot /var/www/html
    …
</VirtualHost>[/code]
위와 같이 ServerName이나 ServerAlias 설정이 없이도 DocumentRoot설정만 있으면 됩니다. 이제부터는 가상호스트에 설정되지 않은 요청이 올 경우 저 디폴트설정이 받게 됩니다.

Tomcat 무분별하게 catalina.out 크기 커지는것 막기

Tomcat의 로그를 보다보니 날짜별로 로그 파일을 나누어 쌓고 있음과 동시에 catalina.out이라는 파일에도 중복하여 로그를 쌓는것을 알수 있다.

이 파일은 끝없이 커지는데 관리상 좋지 못한것은 자명한 일이다. 이 문제를 해결하기 위해 catalina.sh 파일을 수정한다.

start 부분을 찾아 다음과 같이 수정하자.

[code]elif [ “$1” = “start” ] ; then
    shift
#  touch “$CATALINA_BASE”/logs/catalina.out
  if [ “$1” = “-security” ] ; then
    echo “Using Security Manager”
    shift
    “$_RUNJAVA” $JAVA_OPTS $CATALINA_OPTS \
      -Djava.endorsed.dirs=”$JAVA_ENDORSED_DIRS” -classpath “$CLASSPATH” \
      -Djava.security.manager \
      -Djava.security.policy==”$CATALINA_BASE”/conf/catalina.policy \
      -Dcatalina.base=”$CATALINA_BASE” \
      -Dcatalina.home=”$CATALINA_HOME” \
      -Djava.io.tmpdir=”$CATALINA_TMPDIR” \
      org.apache.catalina.startup.Bootstrap “$@” start \
      >> /dev/null 2>&1 &
#      >> “$CATALINA_BASE”/logs/catalina.out 2>&1 &

      if [ ! -z “$CATALINA_PID” ]; then
        echo $! > $CATALINA_PID
      fi
  else
    “$_RUNJAVA” $JAVA_OPTS $CATALINA_OPTS \
      -Djava.endorsed.dirs=”$JAVA_ENDORSED_DIRS” -classpath “$CLASSPATH” \
      -Dcatalina.base=”$CATALINA_BASE” \
      -Dcatalina.home=”$CATALINA_HOME” \
      -Djava.io.tmpdir=”$CATALINA_TMPDIR” \
      org.apache.catalina.startup.Bootstrap “$@” start \
      >> /dev/null 2>&1 &
#      >> “$CATALINA_BASE”/logs/catalina.out 2>&1 &

      if [ ! -z “$CATALINA_PID” ]; then
        echo $! > $CATALINA_PID
      fi
  fi[/code]
* 추가 – 더 편한 방법
언제 부터인가 위의 설정이 >> “$CATALINA_OUT” 2>&1 &와 같이 바뀌었습니다.
/etc/profile에 다음을 추가하셔도 한방에 해결됩니다.
[code]export CATALINA_OUT=”/dev/null”[/code]