WAS/Tomcat

[Tomcat] 패치 후 웹 반영이 안될 때 해결방법(포트 충돌)

Ma_Sand 2023. 9. 8. 02:04
반응형

 

 

문제상황

검증서버와 운영서버에 ui 패치한 후 톰캣을 재기동하였다.

검증서버는 웹에 정상적으로 반영이 되었으나, 운영서버는 그렇지 않았다.

이를 해결하기 위해 검증서버 ui 전체를 tar로 묶어 운영서버 ui에 덮어씌운 후 톰캣을 재기동하였으나 이 역시 웹 반영이 되지 않았다.

 

 

 

원인

A 고객사는 한 서버 내에 운영서버와 개발서버를 함께 구성해놓았었다.

즉, 한 서버(ex. 192.168.2.71) 내에 2개의 톰캣(운영 및 개발)이 기동되고 있었다.

 

1. 톰캣의 /work와 /temp에서 이전 작업 저장

톰캣 내 /work와 /temp에 패치 이전의 작업들이 저장되어 있어 패치 이후의 작업이 반영되지 않았다 생각해 해당 디렉토리들을 rm으로 삭제하고 재기동해보았으나 전과 같았다.

 

2. 톰캣 포트번호 확인

톰캣 설정에 문제가 있나싶어 톰캣 포트번호를 확인해보았는데, 운영서버와 개발서버의 톰캣 포트번호가 8085로 동일했다. 각 서버에서 톰캣을 기동했더니 기동에 오류가 발생하였다.

운영서버와 개발서버 둘 중에 하나만 실행할 것이라면 상관없지만 같이 실행해야 한다면 포트 충돌이 일어나기 때문에 잘못 구성한 것이다.

 

 

 

해결

1. 톰캣 포트번호가 각각 다르다면?

톰캣 내 /work와 /temp를 삭제하고 재기동한다.

-- 톰캣 홈디렉토리로 이동
$ cd $CATALINA_HOME

-- /work, /temp 삭제
$ rm -rf work temp

-- 톰캣 재기동
$ cd bin | ./shutdown.sh | ./startup.sh

 

2. 톰캣 포트번호가 둘다 같다면?

각각 포트번호를 다르게 설정하고 재기동한다.

-- 포트 변경을 위해 server.xml 열기
$ cd $CATALINA_HOME/conf
$ vi server.xml

-- vi모드에서 다음 부분의 port 수정
<Connector port="8085" protocol="HTTP/1.1"
                    connectionTimeout="20000"
                    redirectPort="8443" />

-- 톰캣 재기동
$ cd bin | ./shutdown.sh | ./startup.sh

 

나의 경우에는 2번이 원인이었기에 톰캣 포트번호를 각각 8085, 18085로 수정한 후 재기동했더니 정상적으로 패치가 반영되었다.

 

반응형