Ubuntu에 Tomcat 서버 세팅하기

Photo by Dmitriy on Unsplash

1. Java 설치

당연한 이야기겠지만 Tomcat 은 자바를 필요로 하므로 이를 설치한다.

$ sudo apt get && sudo apt install default-jdk

2. Tomcat 설치

공식 홈페이지에서 버전을 확인 후 tar 압축 파일의 가장 최신 버전 URL을 가져온다.

$ wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.23/bin/apache-tomcat-10.0.23.tar.gz
$ sudo tar xzvf apache-tomcat-10.0.23.tar.gz -C /opt/tomcat --strip-components=1

3. User 생성 및 권한 부여

보안을 위해 Tomcat은 권한이 없는 별도의 사용자로 실행되어야 한ㄷ. 다음 명령어를 통해 tomcat 이라는 사용자를 만들고 로그인을 할 수 없도록 만든다.

$ sudo useradd -m -d /opt/tomcat -U -s /bin/false tomcat
$ sudo chown -R tomcat:tomcat /opt/tomcat/ && sudo chmod -R u+x /opt/tomcat/bin

4. 관리자 페이지 설정

관리자 및 호스트 페이지에 접속하려면 Tomcat 구성에서 권한 있는 사용자를 정의해야 한다.

$ sudo vim /opt/tomcat/conf/tomcat-users.xml
<tomcat-users>....
<role rolename="manager-gui" />
<user username="manager" password="manager_password" roles="manager-gui" />
<role rolename="admin-gui" />
<user username="admin" password="admin_password" roles="manager-gui,admin-gui" />
</tomcat-users>
$ sudo vim /opt/tomcat/webapps/manager/META-INF/context.xml
...
<Context antiResourceLocking="false" privileged="true" >
<CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
sameSiteCookies="strict" />
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.Csr>
</Context>

5. 데몬 생성

Tomcat이 백그라운드에서 돌아가도록 하기 위해 리눅스의 데몬을 생성한다.

$ sudo update-java-alternatives -l
$ sudo vim /etc/systemd/system/tomcat.service
[Unit]
Description=Tomcat
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-1.17.0-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
$ sudo systemctl daemon-reload
$ sudo systemctl start tomcat
$ sudo systemctl enable tomcat
$ sudo systemctl status tomcat

--

--

I love Programming 🧑🏻‍💻 https://github.com/Jay-flow

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store