본문 바로가기
LEARN/OS

[UBUNTU] 한 서버 안에서 웹서버 - was 연동

by 아이엠제니 2024. 2. 27.

 

os: ubuntu 22.04.3 LTS


 

 

 

 

하나의 서버에서 웹서버랑 was를 설치하여 연동하게 되었다.

한 서버 안에 있기 때문에 설치가 생각보다 어렵지는 않았다.

 

처음에는 회사 다른 직원 분이 클러스터링 설치 절차에 대해 기록해 두신 게 있었다.

하지만 막상 클러스터링을 하려니, 잘 되지 않는 것들이 많았다.

그래서 나도 찾아 보고, 최초로 작성했던 분과 다른 분들의 도움을 받아서 결국 클러스터링은 성공...

그리고 그 과정들을 회사 노션에 빠짐없이 기록을 했다.

이 업무를 나만 하게 되는 것은 아닐 테고?

사실 나는 잘 몰라서, 꽤나 고생을 했지만!

다음 사람은 기존에 있는 자료를 참고하여서 한다면, 시행착오를 줄일 수도 있을 테니 기록!

그렇지만 결국에 기록한다는 것은 내가 나중에 보기 위해서이다.

 

이전에 기록한 것이 있었기 때문에, 이번에도 설치를 할 수 있었다.

남겨 놓기를 잘 했다고 생각한다.

그리고 클러스터링 구축하는 설치 과정을 가이드처럼 정리해서 잘 기록했더니, 칭찬도 받았다.

칭찬은 사람도 춤추게 하는... (춤을 춘다기보다는, 의욕이 떨어질 때마다 다시 힘이 생긴다. 그 칭찬으로 또 하루를 버티는.. 할 수 있다... ★)

 

프로젝트하는 동안에는 사실 주먹구구식으로 하는 것도 없지 않아 있었다.

공부를 하면서 차근차근하기보다는 거의 맨땅에 헤딩을 하는 것 같고, 계란으로 바위를 깨는 기분이었다고 해야 할까?

이 절망은 나만이 아는 고통...

그 고통의 시간을 겪고, 이제는 새롭게 배우는 게 어려우면서도 조금 재미는 있다.

아무튼 이렇게 기록하며, 내것으로 채우기.

웹서버-was 연동을 위한 설치 과정도 기록한다.

 

 

 


웹서버

1. apache2 설치

1. update

sudo apt update

 

 

2.  apache 설치

sudo apt install apache2

 

 

3. 프록시 모듈 활성화

sudo a2enmod proxy
sudo a2enmod proxy_http

 

 

4. conf 파일 설정

vi /etc/apache2/sites-available
<VirtualHost *:80>

        ServerName localhost
        ServerAdmin dev@test.co.kr
        DocumentRoot /var/www/html

        ProxyPass /test http://localhost:8080/test
        ProxyPassReverse /test http://localhst:8080/test

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        FallbackResource /index.html

</VirtualHost>

ProxyPass가 없다면 `/var/www/html`에 있는 정적 파일이 화면에 보인다.

ProxyPass 설정을 해야, 톰캣이랑 연동이 된다.

ProxyPass의 `localhost` 자리에 `서버 IP`를 적으면 된다.

 

 

5. apache 재시작

sudo systemctl restart apache2

conf 파일까지 수정을 했다면, 아파치를 재시작한다.

위에서는 conf 파일이 80 port로 되어있지만!

원래는 open ssl 같은 걸로 설치하거나, 아니면 가지고 있는 ssl로 설정을 하는 게 맞다.

기존에는 회사 도메인으로 서버를 올려서, 회사 도메인으로 등록된 ssl 을 사용했었다.

 

하지만 이번에는 회사 도메인이 아닌, 다른 도메인으로 하다 보니!

처음으로 오픈 ssl 설치를 했다.

오픈 ssl로 설치하면서 정말 편했던 점은!

자동으로 80이랑 443 conf 파일을 설정해 준다.

http.conf를 가서 내용을 확인해 보면, https로 리다이렉트 되고 있는 걸 확인할 수 있다.

오픈 ssl 설치도 나중에 기록해야지.

 

 

 


was

2. 자바 설치

1. udpate

sudo apt update

 

 

2. JDK 11 설치

sudo apt install openjdk-11-jdk

 

 

3. JAVA 설치 위치 확인

update-alternatives --list java

 

# 이 위치에 설치됨
/usr/lib/jvm/java-11-openjdk-amd64/bin/java

 

 

4. JAVA 환경 변수 설정

sudo vi ~/.bashrc
# java_home
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin

`.bashrc` 맨 아래에 java_home 추가

 

 

5. 변경 사항 적용 및 설치 확인

source ~/.bashrc
echo $JAVA_HOME

 

 

 

3. Tomcat9 설치

1. 최신 버전 확인

TOMCAT_LATEST_VERSION=$(curl --silent https://downloads.apache.org/tomcat/tomcat-9/ | grep v9 | awk '{split($5,c,">v") ; split(c[2],d,"/") ; print d[1]}')
echo $TOMCAT_LATEST_VERSION

톰캣9의 최신 버전을 확인해 본다.

하나가 아닌 여러 개가 나온다.

그중 나는 9.0.83 버전을 설치했다.

 

 

2. 9.0.83 버전 설치

wget -N https://downloads.apache.org/tomcat/tomcat-9/v9.0.83/bin/apache-tomcat-9.0.83.tar.gz

 

 

3. 압축 해제

tar xzvf apache-tomcat-9.0.83.tar.gz

 

 

4. 디렉터리 이동

mv apache-tomcat-9.0.83 $HOME/tomcat9

 

 

5. 빌드 파일 넣기

cp test.war tomcat9/webapps

나는 MobaXterm을 사용하고 있다.

그래서 윈도우에서 드러그 앤 드롭으로 home으로 옮긴 후에, home을 기준으로 빌드 파일을 옮겼다.

`/home/ubuntu` 이 경로에 test.war가 있다고 가정한다.

cp 명령어는 해당 파일을 복사하는 거다.

복사가 아닌 이동은 mv 명령어를 사용하면 된다.

 

tomcat9/webapps/test.war

cp를 하면, 위 경로에 test.war 파일이 카피가 된다.

 

 

6. 톰캣 시작

tomcat9/bin/startup.sh

그리고 톰캣을 실행한다.

home에서 위 명령어를 입력해도 되고!

아니면 직접 `cd tomcat9/bin`으로 이동한 후에

./startup.sh

위처럼 입력해도 시작할 수 있다.

 

 

7. 톰캣 종료

tomcat9/bin/shutdown.sh

혹시라도 톰캣 중지가 필요하다면!

위 명령어를 입력하면 된다.

`shutdown.sh`도 `startup.sh`처럼 직접 `cd tomcat9/bin`으로 이동한 후에

./shutdown.sh

이렇게 입력해도 된다.

 

 

8. process 확인

ps -ef | grep tomcat

톰캣을 시작하고, 종료할 때 톰캣이 프로세스에 있는지 확인하는 용도!

톰캣이 지금 실행되고 있는지를 확인할 수 있다.

 

서버 설치가 어렵지는 않았다.

다만 소스 파일을 전달받아서, 빌드 후에 배포를 진행하는데 배포가 안 되는 거다.

나중에 알고 보니, 소스에 문제가 있었던 거였다. (...)

어쨌든 인프라 설치는 완료했고, 다행히 배포도 잘 되어서!

 

api 호출 테스트를 해볼 수 있게 되었다.

dev랑 prod 둘 다 설치하느라 분주했는데, 일단 무사히 설치는 완료가 되어서 다행이다.

이제 CI/CD를 위해서 젠킨스를 설치할 예정이다.

사실 설치까지는 했는데, port를 담당자가 열어줘야 했다... (클라우드...)

port 열어주면 젠킨스에 깃허브 연동이 되도록 설정을 하고, 파이프라인을 작성해야겠다. (라고 적고, 추후에 다 설치했다.)

 

 

 

300x250