간단한 웹페이지 스터디를 위해 웹서버로 Jetty를 사용해 보기로 했다.
– 사용이유: Tomcat 보다 가벼울거 같아서
1. 설치방법
다운로드 http://www.eclipse.org/jetty/download.html
(최신버전 2016년 12월8일 기준 v9.4.0)
설치전 조건으로 JDK 1.8 이상이 설치되어 있어야 한다.
2. 환경변수 등록: JETTY_HOME
적당한 위치에 압축을 풀고, 시스템 환경변수로 ‘JETTY_HOME’을 등록한다
– 위치: ‘제어판>시스템 및 보안>시스템’의 좌측 메뉴에서 ‘고급시스템 설정>환경변수>시스템변수’
JAVA_HOME=C:\Library\Java\jdk1.8.0
JETTY_BASE=D:\jetty_base
JETTY_HOME=C:\Tools\jetty-9.4.0
설치가 잘 되었는지, 일단 확인해 보자
cd %JETTY_HOME%
java -jar %JETTY_HOME%/start.jar jetty.http.port=8081
별다른 문제가 없다면, http://localhost:8081 접속시 아무 내용 없는 페이지가 뜰 것이다.
3. 별도의 위치에 webapps 설정하기
* 참고문서: Creating a new Jetty Base
cd %JETTY_BASE% mkdir logs mkdir webapps # 테스트를 위해 demo-base 로부터 ROOT 폴더를 복사해 놓는다 xcopy %JETTY_HOME%\demo-base\webapps\ROOT webapps\ # jetty 실행을 위한 초기환경설정을 하고 java -jar %JETTY_HOME%/start.jar --create-startd # jetty 의 기본 실행모듈을 설정하고 java -jar %JETTY_HOME%/start.jar --add-to-start=http,deploy # jetty를 8081 포트로 실행한다 (logging module 포함) java -jar %JETTY_HOME%/start.jar jetty.http.port=8081 --modules=logging
마찬가지로 별다른 문제가 없다면, http://localhost:8081 접속시 아래 페이지가 뜰 것이다.
4. 윈도우 서비스로 등록하기
– 윈도우 서비스 등록을 위해서는 ‘prunsrv.exe’가 필요하다
다운로드: http://mirror.navercorp.com/apache//commons/daemon/binaries/windows/
적당한 곳에 ‘commons-daemon-1.0.15-bin-windows.zip‘ 압축을 풀고
‘prunsrv.exe’ 파일을 %JETTY_HOME% 에 복사한다.
그리고 서비스 등록을 위한 batch 파일을 작성한다.
* 참고문서: Startup via Windows Service
batch 파일 작성: jetty_svc_install.bat
@echo off set SERVICE_NAME=JettyService set SERVICE_DESC=Jetty v9.4.0 Service set JETTY_HOME=C:\Tools\jetty-9.4.0 set JETTY_BASE=D:\jetty_base set JETTY_PORT=8081 set STOPKEY=secret set STOPPORT=50001 set PR_INSTALL=C:\Tools\jetty-9.4.0\prunsrv.exe @REM Service Log Configuration set PR_LOGPREFIX=%SERVICE_NAME% set PR_LOGPATH=%JETTY_BASE%\logs set PR_STDOUTPUT=auto set PR_STDERROR=auto set PR_LOGLEVEL=Debug @REM Path to Java Installation set JAVA_HOME=C:\Library\Java\jdk1.8.0 set PR_JVM=%JAVA_HOME%\jre\bin\server\jvm.dll set PR_CLASSPATH=%JETTY_HOME%\start.jar;%JAVA_HOME%\lib\tools.jar @REM JVM Configuration set PR_JVMMS=128 set PR_JVMMX=512 set PR_JVMSS=4000 set PR_JVMOPTIONS=-Duser.dir="%JETTY_BASE%";-Djava.io.tmpdir="C:\opt\temp";-Djetty.home="%JETTY_HOME%";-Djetty.base="%JETTY_BASE%";-Djetty.http.port=="%JETTY_PORT%"; @REM Startup Configuration set JETTY_START_CLASS=org.eclipse.jetty.start.Main set PR_STARTUP=auto set PR_STARTMODE=java set PR_STARTCLASS=%JETTY_START_CLASS% set PR_STARTPARAMS=STOP.KEY="%STOPKEY%";STOP.PORT=%STOPPORT% @REM Shutdown Configuration set PR_STOPMODE=java set PR_STOPCLASS=%JETTY_START_CLASS% set PR_STOPPARAMS=--stop;STOP.KEY="%STOPKEY%";STOP.PORT=%STOPPORT%;STOP.WAIT=10 "%PR_INSTALL%" //IS/%SERVICE_NAME% ^ --DisplayName="%SERVICE_DESC%" ^ --Install="%PR_INSTALL%" ^ --Startup="%PR_STARTUP%" ^ --StdOutput="%PR_STDOUTPUT%" ^ --StdError="%PR_STDERROR%" ^ --JavaHome="%JAVA_HOME%" ^ --Jvm="%PR_JVM%" ^ --JvmMs="%PR_JVMMS%" ^ --JvmMx="%PR_JVMMX%" ^ --JvmSs="%PR_JVMSS%" ^ --JvmOptions="%PR_JVMOPTIONS%" ^ --Classpath="%PR_CLASSPATH%" ^ --StartMode="%PR_STARTMODE%" ^ --StartClass="%JETTY_START_CLASS%" ^ --StartParams="%PR_STARTPARAMS%" ^ --StopMode="%PR_STOPMODE%" ^ --StopClass="%PR_STOPCLASS%" ^ --StopParams="%PR_STOPPARAMS%" if not errorlevel 1 goto installed echo Failed to install "%SERVICE_NAME%" service. Refer to log in %PR_LOGPATH% goto end :installed echo The Service "%SERVICE_NAME%" has been installed :end
관리자 권한으로 실행된 ‘Command Shell’에서 서비스를 삭제하거나 등록할 수 있다.
로컬서비스 관리자에 등록된 ‘JettyService’
즐공~
prunsrv로 등록한 윈도우 서비스가 실행되지 않습니다. EventID=7024
– 이유는 모르겠어요 T-T
좋아요좋아요