본문 바로가기
반응형

TOMCAT35

[TOMCAT] 웹사이트 특정 IP만 접속 가능 설정 웹사이트를 관리하다 보면 관리자 사이트에 특정 사용자만 접속 할 일들이 생기게 된다. 고정 아이피를 사용하는 경우 해당 관리자만 사이트에 접근 가능 할 수 있도록 tomcat에서 설정 할 수 있다. server.xml에 적용 시킬 영역에 다음과 같이 넣어준다. ======================================================= 톰캣 설정으로 특정 IP대역만 접속 프로젝트를 하시다보면 보안문제로 특정 IP및 대역을 접속허용을 하시거나 차단해야하는 경우가 종종 있습니다. 저 역시 회사에서 관리하고 있는 수십여개의 업체들의 접속정보들을 관리하는 페이지를 하나 만들었는데, 이 페이지는 팀내부에서만 접속을 허용하고, 팀내IP를 제외한 IP는 접속차단을 해야 했었습니다. 톰캣의 se.. 2021. 7. 16.
TOMCAT 에러 - 사이트 동작 실패시 /opt/tomcat/latest/work/Catalina/localhost/ROOT 폴더 소유가 root 되어 있음 --> tomcat 권한 변경 후 정상 동작 2021. 7. 7.
다중 서버 환경에서 Session은 어떻게 공유하고 관리할까? - 3편 (Disk based database vs In-Memory database) 개요 지난 시간 다중 서버 환경에서 별도의 세션 스토리지를 구성하여 정합성 이슈를 해결하기로 하였습니다. 여기서 생각해볼 문제가 있습니다. 웹 서비스의 특성상 대부분의 요청은 인가된 사용자가 보내는 요청인지 확인하는 절차가 선행되어야 합니다. 즉, 대부분의 요청에서 로그인한 사용자인지 아닌지 확인하기 위해 매번 세션 스토리지를 방문해야 합니다. 이러한 특성을 고려한다면 세션 스토리지를 선정할 때, 성능에 영향이 미치지 않도록 빠르게 데이터를 찾아서 제공할 수 있는 데이터베이스를 사용해야 하겠죠? 지금부터 어떠한 데이터베이스가 세션 스토리지에 적합한지 알아보겠습니다. 매번 왕복하기에 디스크는 너무 느린걸? 데이터베이스는 데이터가 어느 곳에 저장이 되는가를 기준으로 디스크 기반의 데이터베이스와 In-Memo.. 2021. 6. 22.
다중 서버 환경에서 Session은 어떻게 공유하고 관리할까? - 2편(Sticky Session, Session Clustering, Session Storage 분리) 개요 스케일 아웃을 하면 여러 대의 서버가 각각 세션 저장소를 독립적으로 갖게 되므로 정합성 이슈가 발생하였습니다. 이번 시간에는 스케일 아웃을 하였을 때 세션을 어떻게 공유하여 정합성 이슈를 해결하는지에 대해 알아보겠습니다. Multi Server 환경에서 Session이 어떻게 구성되는지 다시 한번 볼까요? 보시는 바와 같이 세션은 서버 1대에 하나의 저장소가 형성됩니다. 지난 시간에 알아보았듯이 나누어진 세션 저장소에 대한 별도의 처리가 없다면 각각의 세션들은 정합성 이슈를 발생시킵니다. 위 그림처럼 여러 대로 나뉜 서버가 하나의 서비스를 운영하기 위해서는 4개의 분리된 세션을 하나의 시스템처럼 동작하게 하거나, 고정된 세션을 사용하여야 합니다. 먼저 Sticky Session을 사용하여 세션을 유.. 2021. 6. 21.
Tomcat 8 세션 클러스터링 하기 WAS간 세션 공유해야하는 일이 생겨서 Tomcat Clustering을 한 내용을 정리해봅니다. 설정하기 Apache Tomcat 8 - Clustering/Session Replication HOW-TO 문서를 보면 정말 간단합니다. 설치 후 기본으로 포함되어 있는 server.xml 파일에서 위 라인의 주석만 제거해주면 설정 끝. 그 다음에 WEB-INF/web.xml 파일에 아래와 같이 한 줄 넣어주면 됩니다. 위와 같이 작성하면 기본적으로 아래와 같이 동작합니다. multicast 방식으로 동작하며 address는 ‘228.0.0.4’, port는 ‘45564’를 사용하고 서버 IP는 java.net.InetAddress.getLocalHost().getHostAddress()로 얻어진 IP 값.. 2021. 6. 11.
Tomcat 으로만 세션 클러스터링 구성 # 세션 클러스터링(Session Clustering) 이란? : 여러대의 서버가 동시에 한가지 업무를 수행하도록 하는 것! ​ # 보통 어떻게 사용하나? : 요즘이야 기술이 좋아져서 Redis나 별도의 세션서버를 두고 사용하는 경우이거나, L4같은 장비를 통해서 클러스터링을 합니다. ​ #:) 저같은 경우도 redis를 통해 세션 클러스터링을 설정 해본적이 있는데요 이번에는 톰캣 설정으로 클러스터링을 해볼려고 합니다. ​ ● server.xml ● web.xml ​ 이렇게 두 파일만 설정하면 끝... 정말 될 까 싶어서 war으로 톰캣 두개를 배포해서 8080, 8081 를 와따가따했는데 세션이 이어진다. 처음에 아키텍쳐 설계시 클러스터링을 위해서 L4도입이나. 세션서버를 도입하는 경우가 있는데 이렇게.. 2021. 6. 11.
[Tomcat] Clustering(클러스터링) 개요 WAS의 성능향상 및 서비스 연속성을 위한 목적으로 클러스터를 많이 구성합니다. WAS의 제품군은 별도의 L4 장비를 이용하지 않고도 자체기능에서 세션 공유기능을 제공하여 한쪽이 장애가 생기더라도 원할한 서비스가 가능하도록 설계되어져 있습니다. 다음은 웹서버(apache)와 WAS(톰캣)을 이용하여 세션클러스터링을 구성한 예입니다. 아래 내용은 톰캣과 아파치가 연동이 되어 있다는 전제하에 설명합니다. 톰캣 아파치 연동은 아래 참조 https://fliedcat.tistory.com/2?category=724321 [그림 1] 톰캣 클러스터 구성Tomcat 구성 1. server.xml 수정 1.1 심플 클러스터 설정 className="org.apache.catalina.ha.tcp.SimpleTc.. 2021. 6. 11.
[SSL]HTTPS 통신을 위한 Tomcat SSL 설정하기 HTTPS 및 SSL 암호화 통신을 위해 Tomcat 설정을 해보자 일단 HTTPS, SSL을 왜 사용할까? 링크를 통해 어떠한 사이트에 접속하게된다. 이 사이트가 아무 문제가 없는 사이트라면, 상관이없지만, 개인정보를 뻇는 사이트인지, 해킹당하고 있는사이트인지 ,해킹 위험이 있는 사이트인지 우리는 알수가 없다. 이 웹사이트가 어떤 사이트인지, 누가 만든사이트인지, 통신이 안전한지 등의 정보알아야 하기때문에 HTTPS 통신을한다. HTTPS/ SSL 통신을 하면 , 인증기관( CA )에서 해당 사이트가 누구의 소유인가, 누가만든것인가등의 정보를 인증해주고 , 이러한 인증기관의 인증으로 안전한 사이트접속을 하게한다. 먼저, HTTPS / SSL 암호화 통신 방법에 대해 알아보자! 1. 서버측에서는 서버에 .. 2021. 6. 2.
톰캣 타임존 설정 톰캣이 설치된 bin 폴더에 setenv.sh 파일을 생성하고 아래 내용을 붙여 넣기한다. #!/bin/bash export CATALINA_OPTS="$CATALINA_OPTS -Dfile.encoding=UTF8 -Duser.timezone=GMT+9" 환경변수에 톰캣 구동시 사용할 옵션을 보강하는 방식으로 -Duser.timezone=GMT+9 로 설정하므로써 웹앱이 기본적으로 한국시간으로 동작하도록 한다. 최근의 프로젝트들은 모든 시간을 UTC timezone 을 사용하고, UI 에서 표시할 때만, 해당 사용자의 timezone 값을 사용하여 해당 지역의 시간으로 표기하는 경우가 많으므로, 되도록이면 UTC 로 설정하도록 하는게 좋지만, 국내에 한정하여 서비스하는 스몰 비지니스의 경우, AWS, .. 2021. 5. 21.
TOMCAT 에러로그 해당 톰캣서버의 인스턴스 업그레이드 필요 (t3.large) [ROOT] appears to have started a thread named [logback-1] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: sun.misc.Unsafe.park(Native Method) java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215) java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchroni.. 2021. 5. 18.
TOMCAT 에러 로그 18-May-2021 04:50:08.550 INFO [http-nio-8080-exec-25] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/opt/tomcat/apache-tomcat-8.5.61/webapps/ROOT.war] has finished in [19,981] ms Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual load.. 2021. 5. 18.
[Linux] Tomcat 다중 설치 한 서버내 서로 다른 서비스때문에 톰캣을 분리한다던지, 또는 로드밸런싱을 통산 부하분산을 목적 등으로 Tomcat을 다중으로 설치해야 할 일들이 있다. 오늘은 동일 서버내 tomcat을 다중으로 설치하는 방법에 대해 알아보자. 일단 설치에 앞서서, 동일 서버에서 tomcat 여러개를 사용하려면 내부 사용하는 port를 미리 정리할 필요가 있다. 이미 해당 서버에서 다른 port를 사용할 수 있으므로 설치 전에 정리해두면 도움이 된다. tomcat 이용시에는 1개의 톰캣에서 보통 3개의 port를 사용한다고 생각하면 된다. tomcat 내부 포트, apache 연동을 위한 ajp 포트, 서비스 포트 이다. 나는 아래와 같이 포트를 지정했다. tomcat_1 tomcat_2 server port (내부) 8.. 2021. 5. 15.
싱글 서버에서 멀티 (2개) 톰캣(TOMCAT) 구동하기 Tomcat 9 Multiple Instances in Single Linux Server | RHEL 8 | CentOS 8 | Tech Arkit ## 이미 톰캣 1개 구동 중 - sudo systemctl status tomcat.service ## 포트번호를 다르게 하고 톰캣을 하나더 설치 예정 1. [다운로드 다른방법] - curl -O https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.61/bin/apache-tomcat-8.5.61.tar.gz 2. 압축해제 - tar -xvzf apache-tomcat-8.5.61.tar.gz 3. Tomcat1 사용자 추가 생성 - Tomcat 서비스를 실행할 홈 디렉토리 /opt/tomcat1을 사용하여 새 .. 2021. 5. 14.
배포한 소스 코드를 rollback하는 쉘 스크립트 구현 www.youtube.com/watch?v=7OSzN16FqCw&list=PLqaSEyuwXkSrJ5Z4y8oCffAOPvGBiNAST&index=8 ## 심볼릭 링크를 사용하면 원복시 편리하다. ## 배포 디렉토리 확인 (현재 3개의 버전이 있음) ## jwp-rollback.sh 스크립트 생성 - ls -1t . (가장 최근의 순서부터 역순으로 조회) - ls -1t . (가장 최근의 순서부터 역순으로 조회) - ls -1tr . (시간 순으로 조회) - 시간 역순으로 두번째 폴더 선택 필요 - ${REVISIONS[1]} 로 2번째 값을 추출 - 2번째 폴더인 ~3525 로 심볼릭 링크 연동 성공 2020. 12. 27.
심볼릭 링크를 활용한 배포 자동화 www.youtube.com/watch?v=UqocnEIX-mA&list=PLqaSEyuwXkSrJ5Z4y8oCffAOPvGBiNAST&index=7 ## 심볼릭 링크를 활용하여 배포 문제시 -> 이전 버전으로 재구현 - mkdir releases - mkdir jwp-basic - 심볼릭 링크로 스크립트 재수정 - 빌드 성공 및 해당 폴더 생성 - ROOT 디렉토리 심볼릭 링크 생성 ## 재 빌드시 자동으로 최신 폴더로 심볼릭 링크 연결됨 2020. 12. 27.
쉘 스크립트를 활용한 배포 자동화 www.youtube.com/watch?v=U7tZnEiYJyE&list=PLqaSEyuwXkSrJ5Z4y8oCffAOPvGBiNAST&index=6 ## 스크립트 폴더 및 파일 생성 - mkdir scripts - vi jwp-deploy.sh - chmod 755 jwp-deploy.sh ## 스크립트 파일 작성 ## 변수명 지정으로 스크립트 재작성 2020. 12. 27.
Tomcat 서버에 웹 애플리케이션 빌드 및 배포 www.youtube.com/watch?v=bzM1WL4qdoA&list=PLqaSEyuwXkSrJ5Z4y8oCffAOPvGBiNAST&index=5 ## git clone 수행할 것 ## git branch -a (전체 브랜치 조회) - 로컬 브랜치는 기본적으로 마스터만 생성됨 - 현재는 master 브랜치가 선택중 - (리모트에 있는 step2로 변경 필요 -> 로컬 브랜치로 가져와서 빌드를 해야함) - git checkout -b step2-user-with-mvc-framework origin/step2-user-with-mvc-framework (-b는 최초생성) (step2 브랜치 생성) (origin에서 갖고와라) - git branch -a (선택 브랜치 확인) - 로컬 브랜치와 리모트 브.. 2020. 12. 27.
Nginx 설치 및 설정 1-2) ## Nginx 설치 (https://blog.yeon.me/goto/569) (https://hyojun123.github.io/2018/05/30/linux1/) (2020-12-21) 1. nginx 설치 - $sudo apt-get install nginx - $sudo service nginx start 2. nginx와 tomcat 서버 연동 - 이 웹서버의 설정파일은 /etc/nginx/nginx.conf 파일에서 내용 추가 > - cd sites-available/ 디렉토리로 이동 - root@ip-10-20-18-211:/etc/nginx/sites-available# cd sites-available/ - vi opendedx 파일 생성 - /sites-enables/ 로 가서.. 2020. 12. 21.
톰캣 설치 및 설정 방법 1-1) ## Tomcat 설치 (https://jjeongil.tistory.com/1269) (2020-12-21) 1. OpenJDK 설치 - OpenJDK, Java 플랫폼의 오픈 소스 구현은 Ubuntu 18.04의 기본 Java 개발 및 런타임입니다. - sudo apt install default-jdk - 자바 위치 확인 ------------------------------------------------------- ubuntu@ip-10-20-13-12:~$ which java /usr/bin/java JAVA_HOME 위치 /usr/lib/jvm/java-8-openjdk-amd64 ------------------------------------------------------ 2.. 2020. 12. 21.
자바, 메이븐 설치 및 설정 www.youtube.com/watch?v=dWGzApCuF9M&list=PLqaSEyuwXkSrJ5Z4y8oCffAOPvGBiNAST&index=1 * 우분투 서버에 한글 인코딩 설정 * 자바 8 설치 및 설정 * 메이븐 설치 및 설정 ## 호스트 파일 설정 - ssh -i "jwp.pem" ubuntu@jwp ## 우분투 서버에 한글 인코딩 설정 - root@ip-10-20-18-211:~# sudo locale-gen ko_KR.EUC-KR ko_KR.UTF-8 - sudo dpkg-reconfigure locales - vi .bash_profile 생성 (기본적으로 없음) - source .bash_profile (즉시 적용) - env 명령어로 확인 가능 ## 자바 8 설치 및 설정 - JAV.. 2020. 12. 20.
nginx에 점검 페이지 설정 graygrids.com/?download_cats=all&s=coming+soon&post_type=download You searched for coming soon | GrayGrids Search Result Search Results for "coming soon" graygrids.com ## zip 파일 전송 후 압축 풀기 - unzip level-up.zip - 경로 복사 - /sites-availables 이동 후 파일 편집 - 심볼릭링크 재조정 - sudo nginx -s reload - 재접속 2020. 12. 19.
nginx 설치 및 설정 디렉토리, 파일 설명 www.youtube.com/watch?v=7GlCo6RHBns ## 서비스 안정성을 위해 WEB / WAS 로 구성을 진행함 - 연동작업은 부담. - Apache -> Nginx 로 많이 사용함. ## 우분투 nginx 설치 검색 - sudo apt-get install nginx - curl http://icanhazip.com (리눅스에서 내 IP 조회 명령어) - ps -ef | grep nginx - curl http://localhost (로컬에서 접속테스트) - 외부에서 접속 테스트 ## nginx 설치 파일 위치 - /etc/nginx 기본적으로 있음 - nginx.conf 세부 내용 - include /etc/nginx/sites-enabled/*; (각 서비스별 설정 가능) - /sit.. 2020. 12. 19.
nginx와 tomcat 서버 연동 www.youtube.com/watch?v=QRqm5Xlw1HQ ## jps -v (시스템에서 돌고있는 JAVA 프로세스 확인) ## 방법1. upstream 을 이용하여 tomcat 과 연동할 수 있음 ## 방법2. 아래와 같이 proxy_pass 에 upstream 없이 직접 서버정보를 넣어서 설정할 수도 있음 ## 설정 방법 - cd /etc/nginx/sites-availalbe/ - sudo vi jwp-basic 내용 붙여넣기 - /sites-enables/ 로 가서 default 심볼릭링크 삭제 - sudo ln -s ../sites-available/jwp-basic jwp-basic (심볼릭링크 재설정) - nginx 재시작 : sudo nginx -s reload - nginx (80).. 2020. 12. 18.
톰캣 #11 팁 www.youtube.com/watch?v=zY0pDLOZ_7U&list=PLQUXE_kb6KOj0mvxoAGrz3FT9EDL3fa1z&index=14 ## 한서버에 다중의 톰캣 구동시 ## setenv (독립성 보장으로 원본파일 말고, setenv 를 사용하자) ## 실행유저 - root 로 톰캣을 실행하면, 부수적 수정사항이나 로그들은 루트계정으로 생성됨 : 다시 톰캣계정으로 오면 실행이 안되는 상황 발생 - server.xml 에서 root 로 실행 차단을 설정 ## Connector 2020. 12. 11.
톰캣 #10 모니터링 www.you1tube.com/watch?v=1IAghXNby-Y&list=PLQUXE_kb6KOj0mvxoAGrz3FT9EDL3fa1z&index=13 ## 톰캣의 기본 모니터링 툴 - manager : APP 상태 / 세션의 개수 - host-manager - 톰캣5.5 에서만 admin 제공 : 웹로직과 제우스와 비슷한 콘솔화면 제공 ## psi-probe 모니터링 툴 ## jkstatus (mod_jk 에 들어있는 모듈) - 아파치로 부터 시작되는 요청을 모니터링 함 (아파치와 톰캣 같이 사용시 활용) ## visualVM - 자바로 실행되는 JVM 대한 모든 모니터링 툴 - Remote 서버 추가 방법 1 - Remote 서버 추가 방법 2 ## JMC ## APM - Jennifer (상용) .. 2020. 12. 11.
톰캣 #09 쓰레드 www.youtube.com/watch?v=sKiEidnV0nI&list=PLQUXE_kb6KOj0mvxoAGrz3FT9EDL3fa1z&index=12 ## 쓰레드 - 톰캣이 기본 요청을 처리하는 단위 - 동시간대에 처리할 수 있는 양은 정해저 있음. ## 톰캣 6,7,8 버전 기본 쓰레드 (동시처리) 200 으로 셋팅 - /conf/server.xml - maxThreads 가 제일 중요 - Connector executor 를 활용하여 HTTP, AJP 통합 관리 : tomcatThreadPool 하나에서 관리 - 쓰레드를 무한정으로 늘릴수는 없다. ## 쓰레드 덤프 예제 (밑에서 위로 읽는다) ## 쓰레드 덤프 남기는 방법 ## 쓰레드 덤프 구현 실습 - 방법1 - ps -ef | grep java.. 2020. 12. 11.
톰캣 #08 웹서버 연동 www.youtube.com/watch?v=j6qeCBWM4YI&list=PLQUXE_kb6KOj0mvxoAGrz3FT9EDL3fa1z&index=11 ## 웹서버 연동의 이유 1. 톰캣서버의 동적 처리를 위한 부하 분산 2. 소스분산 - 아파치 서버 : 정적파일 처리 (이미지, HTML, CSS) - 정적처리는 아파치가 더 빠름 - 톰캣 서버 : 동적파일 처리 (JSP, 서블릿) ## 톰캣과 연동하는 mod_JK - 아파치와 톰캣과 대표적인 연동 모듈임 - 사용방법 1. mod_jk 모듈을 설정한다. 2. worker 를 정의한다. 3. 톰캣이 처리할 요청을 정의한다. 1. mod_jk 모듈을 설정한다. (Download Connector) 1. mod_jk 모듈을 설정한다. - 사전작업으로 아파치가 .. 2020. 12. 10.
톰캣 #07 Host www.youtube.com/watch?v=hnLzh_WE8R8&list=PLQUXE_kb6KOj0mvxoAGrz3FT9EDL3fa1z&index=10 - server.xml 수정 ## 호스트 특징 - 각 도메인별 폴더 생성 ## 구현 방법 - /conf/server.xml 편집 - "www.myserver.com" - "mail.myserver.com" - 테스트를 위해 /etc/hosts 파일 수정 - 톰캣 재시작후, homeapps, mailapps 폴더 자동 생성 - /opt/tomcat/conf/Catalina 폴더에도 자동 생성 - 소스코드 복사 : cp -R /USers/GSLee/APP/testapps/homepage ./homeapps/ROOT : cp -R /USers/GSLee/APP.. 2020. 12. 10.
톰캣 #06 DB 연동 www.youtube.com/watch?v=odsWlmZfzag&list=PLQUXE_kb6KOj0mvxoAGrz3FT9EDL3fa1z&index=9 톰캣과 DB를 연동하는 방법에 대해 알아봅니다. 요즘에는 ibatis나 mybatis를 사용하시는 분들이 있지만 기본적인 톰캣의 DB연동 방법 Connection Pool 의 모니터링 부분 확인 필요 ## 톰캣에서 기본 제공하는 Connection Pool 사용 - context.xml 내부에 web.xml 참고하라고 재지정 ## 최초에 JDBC 드라이버 설치 필요 ## MySQL 연동 ## ORACLE 연동 ## PostgreSQL 연동 ## DB 연동 설정값 - maxActive - maxIdle - minIdle - initialSize - maxWa.. 2020. 12. 9.
톰캣 #05+b ROOT Deployment www.youtube.com/watch?v=kOp9ahbtE9Q&list=PLQUXE_kb6KOj0mvxoAGrz3FT9EDL3fa1z&index=8 ## 방법 1 ## ROOT app 활용 - Manager 에서 공란이나, / 넣으면 자동으로 이름이 변경됨 ## 방법 2 ## ROOT.xml 활용 2020. 12. 9.
반응형