톰캣: 25개의 글
위와 같이 localhost:8080(포트)/Study(webapps에 있는 폴더)/NewFile.jsp(파일명)을 입력해서 jsp 파일을 실 서버에서 구동할 수 있다. 출처 : namubada.net/51?category=769900
이클립스의 경우 클래스나 변수가 수정될 경우 자동으로 publishing 하는 기능이 있어 톰캣 재실행없이 변경된 결과를 확인할 수 있다. 그러나 인텔리J의 경우 이 기능이 자동으로 설정되어 있지 않아 바로 변경이 어렵다 그러므로 별도의 변경 이후에 사용이 가능하다. 인텔리J 우측 상단에 edit configurations로 접속한다. 아래 사진의 On update action과 on frame deactivation을 Update classes and resources로 변경 해주고 Ok 버튼을 눌러준다. 그리고 실행은 항상 debug 모드로 해야지 Auto publishing이 정상 작동되니 참고하도록하자. 출처 : namubada.net/137?category=776665
tomcat 설치경로/lib/ 으로 이동한다. lib 디렉토리 안에 catalina.jar 파일이 있다. 아래의 java 명령어를 사용하면 다음과 같이 출력된다. $ java -cp catalina.jar org.apache.catalina.util.ServerInfo Server version: Apache Tomcat/7.0.82 Server built: Sep 29 2017 12:23:15 UTC Server number: 7.0.82.0 OS Name: Linux OS Version: 2.6.32-573.7.1.el6.x86_64 Architecture: amd64 JVM Version: 1.7.0_79-b15 JVM Vendor: Oracle Corporation 만약 java 명령어의 ..
(현재) 뉴비때 리눅스에 웹프로젝트를 올리려고 하는데, 당시에는 Web Server와 WAS의 개념과 원리도 잘 몰랐을 뿐더러 톰캣에 대한 범용적인 설정지식도 없었다. 그냥 찾아보고 마구잡이로 적용해보던 시기에서 다른 블로그에 리눅스에 톰캣설치하는 삽질을 기록해뒀길래 포워딩 해온다. 리눅스 서버에 웹프로젝트를 올리기 위해서는 리눅스에도 Tomcat을 설치해야 한다. 그리고 Tomcat을 설치하기 전에 JDK를 설치해야 하는데, 리눅스의 경우 Open JDK를 내장하고 있다. 그래서 기존의 Open JDK를 삭제하고 정식 Oracle JDK를 설치하든, 그냥 Open JDK를 놔두고 Oracle JDK를 설치한 후, 메인을 Oracle JDK로 바꿔주든 나름대로의 셋팅이 필요하다. 1-1. OPEN JDK..
1. 개발환경- Ubuntu 12.04.4 LTS- Tomcat 7.0 2. Tomcat Profile 수정tomcat은 설치가 되었다는 가정하에 설명하겠다.$ sudo vi /etc/profile profile을 아래 문자를 추가export JAVA_HOME="/usr/lib/jvm/java-7-oracle" (1)export CATALINA_HOME="/home/www/tomcat" (2)export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/binexportCLASSPATH=$JAVA_HOME/jre/lib:$JAVA_HOE/bin/tools.jar:$CATALINA_HOME/common/lib/jsp-api.jar:$CATALINA_HOME/common/lib/ser..
톰캣의 특정 버전부터는 RFC 7230, RFC 3986에 의해 특수문자를 URI에 허용하지 않는다.따라서 GET으로 던지던 많은 파라미터에서 문제가 생길 수 있다.회사에서 되던게 집에서는 안되길래 크롬 개발자도구 네트워크 탭을 보니, URL Encoded 된 Query String에서 [ ] 등의 특수문자가 보였다. 400오류가 발생했고, 서버 콘솔에는 rfc 7230 and rfc 3986 관련 메시지가 떠있었다. 파라미터를 encodeURI 해서 던지거나 톰캣의 server.xml 옵션을 수정해주어야 한다.나는 회사에서 잡은 개발환경에 맞추기 위해 후자를 택했다. 톰캣 conf/server.xml의 Connector에 다음 부분을 relaxedQueryChars 옵션을 추가해주면 된다. 출처 : h..
Apache를 이용하여 웹 서비스를 하다보면 사용자의 접속로그등이 서버에 누적되게 된다. 이 로그를 기본으로 사용할 경우 1개 페이지의 접속에 대하여 상당히 많은양의 로그를 남기게 되는데, 예를들어 A라는 사용자가 HTML로 구성된 1.jsp를 호출한다고 하였을때 아파치 로그는 1.jsp 안에 포함되어 있는 모든 이미지, css, js 등을 모두 접속로그로 기록하게 된다. 이러한 이유로 log의 크기가 급격하게 커지게 되고, 이는 서비스의 영향을 줄 수도 있는만큼 상황에 따라 적절하게 적용하면 좋다. 특정항목들에 대해 로그 기록을 제외시킬수 있는데, 오늘은 이미지를 제외시키는 방법을 예제로 확인해 보겠다. 1. log_config_module 수정 우선 ${Apache_HOME}/conf/httpd.co..
아파치를 운영해본 사람들은 알겠지만 아파치에서 쌓는 접속 로그는 별다른 설정을 하지 않으면 해당 파일에 계속 로그를 쌓게 된다. 즉 1개 파일에 10GB, 20GB 등등 계속 쌓게 되는데, 사실 아파치 로그가 필요 이상으로 커지는것은 좋지 않다. 사용자가 접속을 할때마다 Apache는 로그를 남겨야 하는데, 로그 파일의 사이즈가 클 경우 마지막줄에 로그를 기록하는데 시간이 오래걸려 오히려 아파치 성능이 떨어지는 문제가 발생한다. 또한 로그 분석 및 보관시에도 불편함이 따르므로 가급적이면 로그를 월별 또는 일별로 저장되게끔 하는게 좋다. 아파치 로그를 월별 또는 일별로 저장되게 하기 위해서는 "${APACHE_HOME}/bin/rotatelogs" 를 이용하여 설정해주면 된다. Apache의 설정파일이나 ..
우리가 인터넷을 사용할때 사용하는 브라우저는 웹페이지 접근시에 이미지, 문서 등과 같은 파일을 임시로 하드디스크에 저장한다. 이를 웹브라우저 캐시라고도 한다. 하드디스크에 저장하는 이유는 이후 동일 사이트 접속시 미리 최근에 저장해놓은 파일들을 이용하여 웹 페이지를 빠르게 로딩하기 위함이다. 하지만 캐시는 영원히 디스크에 남는것이 아니고, 주기적으로 삭제가 된다. 웹 브라우저는 단지 최근에 방문한 사이트만의 캐시만을 가지고 있을 뿐이다. 사실 개발자 입장에서는 캐시를 적절하게 사용하면 웹사이트의 성능을 높일 수 있다. 예를 들어 나같은경우 에전에 진행했던 프로젝트에서 한 화면에 노출되는 이미지의 용량이 엄청났었는데, 사용자가 웹페이지에 접속하면 이미지들을 불러오느라 꽤 많은 시간이 소요되는것을 확인하였다..
일반적으로 웹서비스는 미리 정해진 DocumentRoot 안에 디렉토리 및 파일들을 대상으로 서비스를 한다. 사실 심볼릭 링크도 링크파일로 존재하는 것 이기 때문에 이마저도 싫다 하면 Alias를 이용하여 가상의 디렉토리를 생성하는것을 추천한다. 아파치에서 제공하는 Alias는 물리적인 경로가 다른 디렉토리를 가상의 디렉토리로 설정하여 웹 서비스에서 접근할 수 있도록 도와준다. 아파치 설정파일인 httpd.conf 또는 virtualhost 파일을 열어 서비스하고 있는 곳에다가 Alias 구문을 작성해 주면 된다. DocumentRoot /home/tour/test/cms/WebContent ServerName cms.test.co.kr ServerAlias cms.test.co.kr ServerAdmi..