본문 바로가기
AWS/One Shot Script

[AWS-EC2- Ubuntu] Tomcat 8.5 설치

by 이도현 2021. 4. 18.

1. 계정 su로 변경 및 디렉터리 초기화

sudo su 
cd

2. OpenJDK 설치

apt install default-jdk -y

3. Tomcat User 만들기

useradd -m -U -d /opt/tomcat -s /bin/false tomcat

4. 톰캣 다운로드

apt install unzip wget -y
cd /tmp
wget https://downloads.apache.org/tomcat/tomcat-8/v8.5.64/bin/apache-tomcat-8.5.64.zip
unzip apache-tomcat-*.zip
mkdir -p /opt/tomcat
mv apache-tomcat-8.5.64 /opt/tomcat/
ln -s /opt/tomcat/apache-tomcat-8.5.64 /opt/tomcat/latest
chown -R tomcat: /opt/tomcat
sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'

5. systemd unit file 만들기

vi /etc/systemd/system/tomcat.service
/etc/systemd/system/tomcat.service
[Unit]
Description=Tomcat 8.5 servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/default-java"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"

Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start tomcat
systemctl enable tomcat

6. 방화벽 조정

ufw allow 8080/tcp

7. 톰캣 웹 매니지먼트 인터페이스 설정

vim /opt/tomcat/latest/conf/tomcat-users.xml
/opt/tomcat/latest/conf/tomcat-users.xml
<tomcat-users>
    <role rolename="admin-gui"/>
    <role rolename="manager-gui"/>
    <user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>
</tomcat-users>

※ tomcat-users는 파일 안에 이미 작성되어 있으므로 role, user 관련 부분만 붙여 넣을 것

vim /opt/tomcat/latest/webapps/manager/META-INF/context.xml
/opt/tomcat/latest/webapps/manager/META-INF/context.xml
<Context antiResourceLocking="false" privileged="true" >
<!--
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>
vim /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
/opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
<Context antiResourceLocking="false" privileged="true" >
<!--
   <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
</Context>

※ 위의 설정 부분은 원격접속을 허용하는 부분이다

vim /opt/tomcat/latest/webapps/manager/WEB-INF/web.xml
/opt/tomcat/latest/webapps/host-manager/META-INF/context.xml

<multipart-config>

     <!-- 50MB max -->

        <!--

      <max-file-size>52428800</max-file-size>

      <max-request-size>52428800</max-request-size>

        -->

     <!-- 500MB max -->

      <max-file-size>524288000</max-file-size>

      <max-request-size>524288000</max-request-size>

      <file-size-threshold>0</file-size-threshold>

</multipart-config>

※ 위의 설정 부분은 화면에서 배포시 사이즈가 큰 배포파일도 배포할 수 있게 업로드 가능한 파일 사이즈를 늘리는 부분이다.

systemctl restart tomcat

7. 80포트 유입을 8080포트로 연결

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

8. 설치 테스트

http://<your_domain_or_IP_address>:8080/manager/html

'AWS > One Shot Script' 카테고리의 다른 글

[AWS-EC2- Ubuntu] Redmine 설치 (Bitnami)  (0) 2021.04.23
[AWS-EC2- Ubuntu] Java 1.8 설치  (0) 2021.04.18