1. μνμΉ ν°μΊ£ 9 λ€μ΄λ‘λ
λ€μμ μνμΉ ν°μΊ£ 9λ₯Ό λ€μ΄λ‘λνλ λ°©λ²μ λν μμΈν μ€λͺ μ λλ€.
- μνμΉ ν°μΊ£ 9μ 곡μ μΉμ¬μ΄νΈ(https://tomcat.apache.org/download-90.cgi)λ‘ μ΄λν©λλ€.
- λ€μ΄λ‘λ νμ΄μ§μμ, "Binary Distribution" μΉμ μ μ°Ύμ΅λλ€.
- μ΄μ 체μ μ λ§λ λ€μ΄λ‘λ λ§ν¬λ₯Ό ν΄λ¦ν©λλ€. (μ: Windows 64-bit zip νμΌμ λ€μ΄λ‘λνλ €λ©΄ "zip" λ§ν¬λ₯Ό ν΄λ¦ν©λλ€.)
- λ€μ΄λ‘λκ° μμλκ³ μλ£λ λκΉμ§ κΈ°λ€λ¦½λλ€.
ν°μΊ£ 9 λ€μ΄λ‘λλ₯Ό μν 곡μ μΉμ¬μ΄νΈμμ λ€μ΄λ‘λνλ κ²μ΄ μ’μ΅λλ€. 곡μ μΉμ¬μ΄νΈλ₯Ό ν΅ν΄ μμ μ μ΄κ³ μ λ’°ν μ μλ λ²μ μ μ»μ μ μμ΅λλ€. λ€μ΄λ‘λ νμ΄μ§λ₯Ό μ°Ύμ λμλ μ΄μ 체μ μ λ§λ λ²μ μ μ ννλλ‘ μ£Όμν΄μΌ ν©λλ€.
μ΄μ , μνμΉ ν°μΊ£ 9 λ€μ΄λ‘λκ° μλ£λμμ΅λλ€. λ€μ λ¨κ³λ ν°μΊ£ 9λ₯Ό μ€μΉνκΈ° μν νκ²½ μꡬ μ¬νμ νμΈνλ κ²μ λλ€.
2. νκ²½ μꡬ μ¬ν
μνμΉ ν°μΊ£ 9λ₯Ό μ€μΉνκΈ° μν΄ νμν νκ²½ μꡬ μ¬νμ λ€μκ³Ό κ°μ΅λλ€.
2.1. μ΄μ 체μ
μνμΉ ν°μΊ£ 9λ λ€μν μ΄μ 체μ μμ λμν μ μμ΅λλ€. μ§μλλ μ΄μ 체μ λͺ©λ‘μ μλμ κ°μ΅λλ€:
- Windows: Windows 10, Windows 8/8.1, Windows 7, Windows Vista, Windows Server 2016, Windows Server 2012/2012 R2, Windows Server 2008/2008 R2.
- Linux: CentOS, Ubuntu, Red Hat, Fedora λ± μ£Όμ 리λ μ€ λ°°ν¬ν.
- macOS: OS X 10.9 μ΄μμ λ²μ .
2.2. μλ° κ°λ° ν€νΈ(JDK)
μνμΉ ν°μΊ£ 9λ μλ° κΈ°λ°μΌλ‘ λμνκΈ° λλ¬Έμ, JDK(Java Development Kit)κ° μ€μΉλμ΄ μμ΄μΌ ν©λλ€. ν°μΊ£ 9λ JDK 8 μ΄μμ μ§μνλ©°, JDK 11μ μΆμ²ν©λλ€. JDKλ₯Ό μ€μΉνλ λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€:
- μ€λΌν΄(Oracle)μ 곡μ μΉμ¬μ΄νΈ(http://www.oracle.com/technetwork/java/javase/downloads/index.html)μμ JDKλ₯Ό λ€μ΄λ‘λν©λλ€.
- λ€μ΄λ‘λν JDK μ€μΉ νμΌμ μ€νν©λλ€.
- μ€μΉ λ§λ²μ¬μ μ§μμ λ°λΌ JDKλ₯Ό μ€μΉν©λλ€.
- JDK μ€μΉκ° μλ£λλ©΄, νκ²½ λ³μλ₯Ό μ€μ νμ¬ JDKλ₯Ό μ¬μ©ν μ μλλ‘ ν©λλ€. (PATH νκ²½ λ³μμ JDKμ 'bin' λλ ν 리λ₯Ό μΆκ°νλ κ²μ΄ μΌλ°μ μ λλ€.)
2.3. κΈ°ν μꡬ μ¬ν
μνμΉ ν°μΊ£ 9λ₯Ό μ€ννκΈ° μν΄ μΆκ°μ μΌλ‘ λ€μ μꡬ μ¬νμ΄ νμν μ μμ΅λλ€:
- λ©λͺ¨λ¦¬: ν°μΊ£ 9μ μ μμ μΈ μλμ μν΄ μΆ©λΆν λ©λͺ¨λ¦¬(RAM)λ₯Ό ν λΉν΄ μ£ΌμΈμ. μΌλ°μ μΌλ‘ μ΅μ 2GB μ΄μμ λ©λͺ¨λ¦¬λ₯Ό κΆμ₯ν©λλ€.
- λ€νΈμν¬: ν°μΊ£ 9λ λ€νΈμν¬λ₯Ό ν΅ν΄ ν΄λΌμ΄μΈνΈμ ν΅μ ν©λλ€. λ°λΌμ λ€νΈμν¬μ μ°κ²°λμ΄ μλ νκ²½μ΄μ΄μΌ ν©λλ€.
- ν¬νΈ: ν°μΊ£ 9λ κΈ°λ³Έμ μΌλ‘ 8080 ν¬νΈλ₯Ό μ¬μ©ν©λλ€. λ€λ₯Έ ν¬νΈλ₯Ό μ¬μ©νλ €λ©΄ μ€μ νμΌμμ μμ ν΄μΌ ν©λλ€.
μμ νκ²½ μꡬ μ¬νμ λͺ¨λ μΆ©μ‘±ν ν, μνμΉ ν°μΊ£ 9λ₯Ό μ€μΉν μ€λΉκ° μλ£λμμ΅λλ€. μ΄μ μ€μΉ κ³Όμ μ μ§νν΄ λ³΄κ² μ΅λλ€.
3. μνμΉ ν°μΊ£ 9 μ€μΉνκΈ°
μνμΉ ν°μΊ£ 9λ₯Ό μ€μΉνλ λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€.
λ¨Όμ , μνμΉ ν°μΊ£ 9μ μμΆ νμΌμ λ€μ΄λ‘λν μμΉμμ μμΆμ ν΄μ ν©λλ€.
μμΆμ΄ ν΄μ λ ν΄λμ λ€μ΄κ°λ©΄ λ€μκ³Ό κ°μ νμΌκ³Ό ν΄λλ₯Ό νμΈν μ μμ΅λλ€:
bin
: μ€ν κ°λ₯ν μ€ν¬λ¦½νΈ νμΌμ΄ λ€μ΄μλ ν΄λμ λλ€.conf
: μ€μ νμΌμ΄ λ€μ΄μλ ν΄λμ λλ€.lib
: ν°μΊ£ 9μμ μ¬μ©λλ λΌμ΄λΈλ¬λ¦¬ νμΌμ΄ λ€μ΄μλ ν΄λμ λλ€.webapps
: μΉ μ ν리μΌμ΄μ (.WAR νμΌ)μ λ°°ν¬νλ ν΄λμ λλ€.work
: ν°μΊ£ 9κ° μ€ν μ€μ μμ±νλ μμ νμΌμ΄ μ μ₯λλ ν΄λμ λλ€.
μ€μ νμΌμ μμ νμ¬ ν°μΊ£ 9λ₯Ό μ΄μ 체μ μ λ§κ² ꡬμ±ν©λλ€.
conf
ν΄λμμ λ€μ νμΌλ€μ νμΈνκ³ νμμ λ°λΌ μμ ν©λλ€:server.xml
: ν°μΊ£ μλ²μ μ£Όμ μ€μ νμΌμ λλ€. ν¬νΈ λ²νΈ, 컀λ₯ν° λ±μ μ€μ ν μ μμ΅λλ€.web.xml
: κ° μΉ μ ν리μΌμ΄μ μ μ€μ νμΌμ λλ€. νμν κ²½μ°, μΉ μ ν리μΌμ΄μ μ λ§μΆ€ μ€μ μ μΆκ°νκ±°λ μμ ν μ μμ΅λλ€.
ν°μΊ£ 9λ₯Ό μμνκΈ° μν΄
bin
ν΄λλ‘ μ΄λν©λλ€. μ¬κΈ°μμ ν΄λΉ μ΄μ 체μ μ λ§λ μ€ν κ°λ₯ν μ€ν¬λ¦½νΈ νμΌμ μ°Ύμ μ€νν©λλ€:- Windows μ΄μ 체μ μ κ²½μ°,
startup.bat
μ€ν¬λ¦½νΈ νμΌμ μ€νν©λλ€. - Linux/Mac μ΄μ 체μ μ κ²½μ°,
startup.sh
μ€ν¬λ¦½νΈ νμΌμ μ€νν©λλ€. νμνλ€λ©΄,chmod +x startup.sh
λͺ λ Ήμ΄λ‘ μ€ν κΆνμ μ£ΌμΈμ.
- Windows μ΄μ 체μ μ κ²½μ°,
ν°μΊ£ 9κ° μ μμ μΌλ‘ μμλμλμ§ νμΈνκΈ° μν΄ μΉ λΈλΌμ°μ μμ
http://localhost:8080
μ μ½λλ€. λ‘컬νΈμ€νΈμ 8080 ν¬νΈλ‘ μ μνμ¬ ν°μΊ£ μλ²μ κΈ°λ³Έ νλ©΄μ λ³Ό μ μμ΅λλ€.μΉ μ ν리μΌμ΄μ μ λ°°ν¬νκΈ° μν΄
webapps
ν΄λμ μνλ μΉ μ ν리μΌμ΄μ (.WAR νμΌ)μ 볡μ¬ν©λλ€. ν°μΊ£ 9λ μλμΌλ‘ μΉ μ ν리μΌμ΄μ μ κ²μνκ³ λ°°ν¬ν©λλ€.ν°μΊ£ 9λ₯Ό μ’ λ£νκΈ° μν΄
bin
ν΄λλ‘ μ΄λν ν ν΄λΉ μ΄μ 체μ μ λ§λ μ€ν κ°λ₯ν μ€ν¬λ¦½νΈ νμΌμ μ€νν©λλ€:- Windows μ΄μ 체μ μ κ²½μ°,
shutdown.bat
μ€ν¬λ¦½νΈ νμΌμ μ€νν©λλ€. - Linux/Mac μ΄μ 체μ μ κ²½μ°,
shutdown.sh
μ€ν¬λ¦½νΈ νμΌμ μ€νν©λλ€.
- Windows μ΄μ 체μ μ κ²½μ°,
μ΄μ , μνμΉ ν°μΊ£ 9λ₯Ό μ±κ³΅μ μΌλ‘ μ€μΉνκ³ μ€νν μ μκ² λμμ΅λλ€. μΆκ°μ μΈ μΈλΆ μ€μ μ΄λ κΈ°λ₯ νμ©μ λν΄μλ μνμΉ ν°μΊ£ 9μ 곡μ λ¬Έμλ₯Ό μ°Έκ³ νμκΈ° λ°λλλ€.
4. μ€μ λ° κ΅¬μ±
μνμΉ ν°μΊ£ 9λ₯Ό μ€μΉνλ€λ©΄, μ΄μ ν°μΊ£μ μ€μ νκ³ κ΅¬μ±νμ¬ μνλ λ°©μμΌλ‘ λμνλλ‘ ν μ μμ΅λλ€.
4.1. server.xml μμ νκΈ°
server.xml
μ ν°μΊ£ μλ²μ μ£Όμ μ€μ νμΌλ‘, λ€μν μμ±λ€μ μμ νμ¬ ν°μΊ£μ λμμ μ‘°μ ν μ μμ΅λλ€. μ΄ νμΌμ μμ νμ¬ ν¬νΈ λ²νΈ, 컀λ₯ν°, κ°μ νΈμ€νΈ λ±μ μ€μ ν μ μμ΅λλ€. μλλ μΌλ°μ μΈ μ€μ μμ λ°©λ²μ
λλ€:
conf
ν΄λμμserver.xml
νμΌμ μ½λλ€.<Server>
μμμμport
μμ±μ μμ νμ¬ ν°μΊ£ μλ²μ ν¬νΈ λ²νΈλ₯Ό λ³κ²½ν μ μμ΅λλ€. κΈ°λ³Έ ν¬νΈ λ²νΈλ 8005μ λλ€.<Connector>
μμλ ν°μΊ£κ³Ό μΉ ν΄λΌμ΄μΈνΈ κ°μ μ°κ²°μ λ΄λΉν©λλ€. HTTP/1.1 νλ‘ν μ½μ μ¬μ©νλ κΈ°λ³Έ 컀λ₯ν°λ λ€μκ³Ό κ°μ΄ μ€μ λμ΄ μμ΅λλ€:<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
port
: μΉ ν΄λΌμ΄μΈνΈκ° μ μνλ ν¬νΈ λ²νΈμ λλ€. κΈ°λ³Έκ°μ 8080μ λλ€.protocol
: μ¬μ©ν νλ‘ν μ½μ μ§μ ν©λλ€. κΈ°λ³Έκ°μHTTP/1.1
μ λλ€.connectionTimeout
: ν΄λΌμ΄μΈνΈμ μ°κ²°μ΄ μ μ§λλ μκ°(λ°λ¦¬μ΄)μ μ§μ ν©λλ€. κΈ°λ³Έκ°μ 20000(20μ΄)μ λλ€.redirectPort
: SSL(HTTPS) μ°κ²°μ μν ν¬νΈ λ²νΈμ λλ€. κΈ°λ³Έκ°μ 8443μ λλ€.
νμν κ²½μ°, κΈ°λ³Έ 컀λ₯ν°λ₯Ό μμ νκ±°λ μΆκ°ν μ μμ΅λλ€. μλ₯Ό λ€μ΄, HTTPS μ°κ²°μ μΆκ°νλ €λ©΄ λ€μκ³Ό κ°μ΄ μ€μ ν μ μμ΅λλ€:
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" scheme="https" secure="true" SSLEnabled="true" keystoreFile="/path/to/keystore/file" keystorePass="keystore_password" />
μμ μμμλ
443
ν¬νΈλ₯Ό μ¬μ©νκ³ ,HTTPS
νλ‘ν μ½μ μ¬μ©νμ¬ SSL μ°κ²°μ μ§μν©λλ€.<Host>
μμλ κ°μ νΈμ€νΈμ λν μ€μ μ λ΄λΉν©λλ€. κΈ°λ³Έμ μΌλ‘localhost
κ°μ νΈμ€νΈκ° μ€μ λμ΄ μμ΅λλ€. νμν κ²½μ°, μΆκ° κ°μ νΈμ€νΈλ₯Ό μ€μ ν μ μμ΅λλ€. μλ₯Ό λ€μ΄, μλ‘μ΄ κ°μ νΈμ€νΈ(example.com
)λ₯Ό μΆκ°νλ €λ©΄ λ€μκ³Ό κ°μ΄ μ€μ ν μ μμ΅λλ€:<Host name="example.com" appBase="webapps/example"> <Context path="" docBase="."/> </Host>
μμ μμμλ
example.com
κ°μ νΈμ€νΈλ₯Ό μμ±νκ³ ,webapps/example
ν΄λλ₯Ό ν΄λΉ κ°μ νΈμ€νΈμ μ ν리μΌμ΄μ λλ ν λ¦¬λ‘ μ§μ ν©λλ€.
4.2. web.xml μμ νκΈ°
web.xml
μ κ° μΉ μ ν리μΌμ΄μ
μ μ€μ νμΌμ
λλ€. μ΄ νμΌμ μμ νμ¬ μΉ μ ν리μΌμ΄μ
μ λμμ μ‘°μ ν μ μμ΅λλ€. μλ₯Ό λ€μ΄, μ€λ₯ νμ΄μ§λ₯Ό μ μνκ±°λ νΉμ νν°λ₯Ό μΆκ°νλ λ±μ μμ
μ μνν μ μμ΅λλ€.
conf
ν΄λ μλμμ μνλ μΉ μ ν리μΌμ΄μ μWEB-INF
ν΄λλ‘ μ΄λν©λλ€.WEB-INF
ν΄λ λ΄μ μλweb.xml
νμΌμ μ½λλ€.<error-page>
μμλ₯Ό μ¬μ©νμ¬ μ€λ₯ νμ΄μ§λ₯Ό μ§μ ν μ μμ΅λλ€. μλ₯Ό λ€μ΄, 404 μ€λ₯μ λν μ€λ₯ νμ΄μ§λ₯Ό μ€μ νλ €λ©΄ λ€μκ³Ό κ°μ΄ μ€μ ν©λλ€:<error-page> <error-code>404</error-code> <location>/error404.html</location> </error-page>
μμ μμμλ 404 μ€λ₯ λ°μ μ
/error404.html
νμ΄μ§λ‘ 리λ€μ΄λ νΈλ©λλ€.<filter>
μμλ₯Ό μ¬μ©νμ¬ νν°λ₯Ό μΆκ°ν μ μμ΅λλ€. νν°λ μΉ μ ν리μΌμ΄μ μ μμ²/μλ΅μ κ°λ‘μ±κ³ μμ νλ κΈ°λ₯μ μ 곡ν©λλ€. νν°λ₯Ό μΆκ°νκΈ° μν΄μλ λ¨Όμ <filter>
μ<filter-mapping>
μ μ¬μ©νμ¬ νν°λ₯Ό μ μνκ³ λ§€νν΄μΌ ν©λλ€.<filter> <filter-name>myFilter</filter-name> <filter-class>com.example.MyFilter</filter-class> </filter> <filter-mapping> <filter-name>myFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
μμ μμμλ
com.example.MyFilter
ν΄λμ€λ₯Ό μ¬μ©νλmyFilter
λΌλ νν°λ₯Ό μ μνκ³ , λͺ¨λ URL ν¨ν΄(/*
)μ λν΄ νν°λ₯Ό μ μ©ν©λλ€.
μμ μμλ ν°μΊ£μ μ€μ νκ³ κ΅¬μ±νλ λ°©λ²μ 보μ¬μ£ΌκΈ° μν κ°λ¨ν μμμ λλ€. ν°μΊ£μ μ€μ κ³Ό ꡬμ±μ λ€μν μꡬ μ¬νκ³Ό μλ리μ€μ λ°λΌ λ€λ₯Ό μ μμΌλ―λ‘, 곡μ λ¬Έμ λ° κ΄λ ¨ μλ£λ₯Ό μ°Έκ³ νμ¬ μνλ λμμ λ¬μ±ν μ μλλ‘ μ€κ³ν΄μΌ ν©λλ€.
5. ν μ€νΈ λ° μ€ννκΈ°
ν°μΊ£ 9λ₯Ό μ€μΉνκ³ μ€μ ν ν ν μ€νΈνμ¬ μ μμ μΌλ‘ λμνλμ§ νμΈν μ μμ΅λλ€. μλλ ν μ€νΈ λ° μ€ννλ λ°©λ²μ λν μμΈν μ€λͺ μ λλ€:
5.1. ν°μΊ£ μμνκΈ°
ν°λ―Έλ λλ λͺ λ Ή ν둬ννΈλ₯Ό μ΄κ³ , ν°μΊ£ 9κ° μ€μΉλ λλ ν λ¦¬λ‘ μ΄λν©λλ€.
bin
ν΄λλ‘ μ΄λν©λλ€.ν΄λΉ μ΄μ 체μ μ λ§λ μ€ν κ°λ₯ν μ€ν¬λ¦½νΈ νμΌμ μ€νν©λλ€:
- Windows μ΄μ 체μ μ κ²½μ°,
startup.bat
μ€ν¬λ¦½νΈ νμΌμ μ€νν©λλ€. - Linux/Mac μ΄μ 체μ μ κ²½μ°,
startup.sh
μ€ν¬λ¦½νΈ νμΌμ μ€νν©λλ€. νμνλ€λ©΄,chmod +x startup.sh
λͺ λ Ήμ΄λ‘ μ€ν κΆνμ λΆμ¬ν΄μΌ ν μ μμ΅λλ€.
- Windows μ΄μ 체μ μ κ²½μ°,
ν°μΊ£ 9κ° μ±κ³΅μ μΌλ‘ μμλλ©΄, ν°λ―Έλ λλ λͺ λ Ή ν둬ννΈμμ ν΄λΉ λ©μμ§λ₯Ό νμΈν μ μμ΅λλ€:
Tomcat started.
5.2. ν°μΊ£ ν μ€νΈνκΈ°
μΉ λΈλΌμ°μ λ₯Ό μ΄κ³
http://localhost:8080
μ μ λ ₯ν©λλ€.λ‘컬νΈμ€νΈμ 8080 ν¬νΈλ‘ μ μνμ¬ ν°μΊ£ μλ²μ κΈ°λ³Έ νλ©΄μ νμΈν μ μμ΅λλ€. μ΄ κΈ°λ³Έ νλ©΄μ
webapps/ROOT
ν΄λμ μλindex.html
νμΌλ‘ ꡬμ±λμ΄ μμ΅λλ€.
5.3. μΉ μ ν리μΌμ΄μ λ°°ν¬νκΈ°
webapps
ν΄λλ‘ μ΄λν©λλ€.λ°°ν¬νκ³ μ νλ μΉ μ ν리μΌμ΄μ (.WAR νμΌ)μ
webapps
ν΄λμ 볡μ¬ν©λλ€.ν°μΊ£ 9λ μλμΌλ‘ μΉ μ ν리μΌμ΄μ μ κ²μνκ³ λ°°ν¬ν©λλ€. λ°°ν¬ κ³Όμ μμ WAR νμΌμ΄ μμΆ ν΄μ λκ³ , μΉ μ ν리μΌμ΄μ μ΄ μ€νλ©λλ€.
μΉ λΈλΌμ°μ μμ
http://localhost:8080/μ ν리μΌμ΄μ _μ΄λ¦
μ μ λ ₯νμ¬ λ°°ν¬ν μΉ μ ν리μΌμ΄μ μ νμΈν μ μμ΅λλ€. μ¬κΈ°μμ ν리μΌμ΄μ _μ΄λ¦
μ λ°°ν¬ν μΉ μ ν리μΌμ΄μ μ μ΄λ¦μ λλ€.
5.4. ν°μΊ£ μ’ λ£νκΈ°
ν°μΊ£μ μ’ λ£νκΈ° μ μ, ν°λ―Έλ λλ λͺ λ Ή ν둬ννΈμμ ν°μΊ£μ΄ μ€ν μ€μΈμ§ νμΈν©λλ€.
bin
ν΄λλ‘ μ΄λν©λλ€.ν΄λΉ μ΄μ 체μ μ λ§λ μ€ν κ°λ₯ν μ€ν¬λ¦½νΈ νμΌμ μ€νν©λλ€:
- Windows μ΄μ 체μ μ κ²½μ°,
shutdown.bat
μ€ν¬λ¦½νΈ νμΌμ μ€νν©λλ€. - Linux/Mac μ΄μ 체μ μ κ²½μ°,
shutdown.sh
μ€ν¬λ¦½νΈ νμΌμ μ€νν©λλ€.
- Windows μ΄μ 체μ μ κ²½μ°,
ν°μΊ£ 9κ° μ±κ³΅μ μΌλ‘ μ’ λ£λλ©΄, ν°λ―Έλ λλ λͺ λ Ή ν둬ννΈμμ ν΄λΉ λ©μμ§λ₯Ό νμΈν μ μμ΅λλ€:
Tomcat stopped.
μ΄μ , ν°μΊ£ 9λ₯Ό μ€μΉνκ³ μ€μ ν ν ν μ€νΈνμ¬ μ μμ μΌλ‘ λμνλμ§ νμΈν μ μμ΅λλ€. νμμ λ°λΌ μΆκ°μ μΈ μ€μ λ° μμ μ μννμ¬ ν°μΊ£μ μνλ λ°©μμΌλ‘ νμ©ν μ μμ΅λλ€.
λκΈ