링크 ux 환경 에서 아파 치 + Tomcat 클 러 스 터 설정

15271 단어 linux
앞 에 쓰다
apache 는 여러 개의 tomcat 를 설정 하여 요청 분 류 를 실현 하고 여러 개의 tomcat 서비스 가 균형 적 으로 부하 되 어 서비스의 신뢰성 을 증가 합 니 다.최근 에 연 구 를 해 봤 는데 많은 문제 에 부 딪 혔 습 니 다. 기록 해 보 세 요. 나중에 찾 아 보기 편 하고 apache 를 좋아 하지 않 습 니 다. nginx 도 할 수 있 습 니 다.
준비 하 다.
판본 이 매우 중요 한데, 나 는 판본 때문에 줄곧 잘못 보고 하 였 다.
linux
현재 Liux 시스템 버 전 을 보 려 면 \ # lsb_release -a 을 사용 하 십시오.
이 예: CentOS Linux 릴 리 스 7.0.1406 (Core)
jdk
현재 버 전 을 보 려 면 \ # java -version 을 사용 하 십시오. 없 으 면 먼저 설치 하 십시오.download link
이 예: 자바 버 전 "1.7.0 80"
tomcat
압축 해제 설치 위 치 를 확인 합 니 다.download link
이 예: apache - tomcat - 7.0.69. tar. gz
apache
Liux 시스템 에서 apache 서비스 메 인 프로그램 은 httpd 이기 때문에 이름 도 httpd 입 니 다.현재 버 전 을 보기 위해 서 \ # httpd -version 를 사용 하 십시오.여 기 는 yum 으로 download link 를 설치 합 니 다.
이 예: 아파 치 / 2.4.6 (CentOS)
tomcat-connectors
tomcat - connectors 는 apache 와 tomcat 를 연결 하 는 플러그 인 패키지 입 니 다. 이 버 전 은 매우 중요 합 니 다. 바로 이 를 찾 는 데 오 랜 시간 이 걸 렸 습 니 다. 주로 컴 파일 된 mod 를 사용 하기 위해 서 입 니 다.jk. so 파일.Apache 2.2. x 시 mod 직접 다운로드 가능jk-1.2.31-httpd-2.2.x.so
공식: modjk-1.2.31-httpd-2.2.x.so is for Apache 2.2.x. It has been build against version 2.2.3, but should work with Apache 2.2.0 and later. Rename to mod_jk.so before putting it in your modules directory or adjust your LoadModule statement.,
하지만 저 는 Apache 2.4.6 을 사 용 했 습 니 다. yum 을 사용 하여 설치 할 때 최신 버 전 을 기본 으로 설치 합 니 다. \ # yum list httpd 조회 할 때 이것 밖 에 없 었 습 니 다.그래서 새 중간 가방 을 다운로드 하고 컴 파일 이 필요 합 니 다.download link
이 예: tomcat - connectors - 1.2.42 - src. tar. gz
설치 하 다.
이 패 키 지 를 폴 더 아래 에 두 고 나 는 /home 아래 에 두 었 다.이곳 의 주요 설 치 는 Apache 설치 입 니 다. 저 는 yum 설 치 를 사용 합 니 다.
  • \ # yum list httpd \ # 설치 가능 버 전 목록 보기
  • \ # yum install httpd \ # 기본 설치
  • httpd -v \ # 설치 가 끝 났 습 니 다. 설치 버 전 을 보고 설치 오류 가 발생 하면 apache 가방 을 볼 수 있 습 니 다. 예 를 들 어 httpd. x8664
  • yum list|grep httpd 그리고 관련 의존 팩 을 삭제 합 니 다.메모: 삭제 후 일부 설정 은 유 지 됩 니 다.
  • yum erase httpd.x86_64
  • service httpd start 아파 치 서 비 스 를 시작 합 니 다. 기본 포트 는 80 입 니 다. IP 나 도 메 인 이름 으로 페이지 를 직접 방문 하면 시작 에 성 공 했 고 service httpd status 의 이상 정 보 를 볼 수 없습니다.
    apache - tomcat - 7.0.69. tar. gz, 압축 을 풀 면 됩 니 다.
  • \ # tar zxvf /home/apache-tomcat-7.0.69.tar.gz \ # 현재 폴 더 로 압축 풀기
  • \ # cp /home/apache-tomcat-7.0.69 /usr/local/ \ # / usr / local / 폴 더 로 복사
  • \ # mv /usr/local/apache-tomcat-7.0.69 tomcat1 \ # 폴 더 이름 을 tomcat 1
  • 로 변경 합 니 다.
    이 예 는 여러 tomcat 에서 아파 치 를 설정 하기 때문에 이 동작 을 한 번 더 해 야 합 니 다. 두 번 째 tomcat 를 만 들 고 tomcat 2 라 고 명명 합 니 다.
    tomcat - connectors 컴 파일 및 mod 가 져 오기jk. so 파일,
  • # tar zxvf /home/tomcat-connectors-1.2.42-src.tar.gz
  • # cd /home/tomcat-connectors-1.2.40-src/native

  • 컴 파일 할 때 Apache bin 패키지 의 apxs 도구 가 필요 하기 때문에 yum 에서 따 르 기 때문에 bin 패키지 가 없 으 므 로 httpd - devel 개발 패 키 지 를 다운로드 해 야 합 니 다.
  • \ # rpm -qa|grep httpd \ # httpd 패키지 목록 보기
  • \ # yum -y install httpd-devel \ # 존재 하지 않 으 면 바로 설치
  • \ # which apxs \ # 이 도구 의 위 치 를 조회 합 니 다. 여 기 는 / usr / sbin / apxs
  • 입 니 다.
    tomcat - connectors 컴 파일 연결...
  • [native]# ./configure --with-apxs=/usr/sbin/apxs \ # = 뒤의 위 치 는 바로 위 에 apxs 위 치 를 설치 하 는 것 입 니 다. /home/tomcat-connectors-1.2.40-src/native 디 렉 터 리 에서 조작 해 야 합 니 다.
  • [native]# make \ # 컴 파일 실행
  • 컴 파일 성공 후 / home / tomcat - connectors - 1.2.40 - src / native / apache - 2.0 / modjk. so mod 찾기jk. so 파일, Apache module 패키지 로 복사
  • # cp /home/tomcat-connectors-1.2.40-src/native/apache-2.0/mod_jk.so /etc/httpd/modules/

  • 전체 경 로 를 사 용 했 으 니 스스로 간략하게 쓸 수 있다.
    배치 하 다.
    두 개의 파일 을 만 들 고 mod 를 이용 합 니 다.jk. so 플러그 인 패 키 지 는 아파 치 를 tomcatx 와 연결 합 니 다.아파 치 설정 파일 들 어가 기
  • \ # cd /etc/httpd/conf \ # 설정 폴 더 에 들 어가 기
  • \ # vi mod_jk.conf \ # 파일 만 들 기, shift+: => q => Enter 닫 기
  • \ # vi workers.properties \ # 파일 만 들 기, shift+: => q => Enter 닫 기
  • mod 열기jk. conf 파일 및 쓰기
    #   mod_jk.so   ,     
    LoadModule jk_module /etc/httpd/modules/mod_jk.so
    #   tomcat       
    JkWorkersFile conf/workers.properties
    #      
    JkLogFile /etc/httpd/logs/mod_jk2.log
    #    
    JkLogLevel info
    JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
    JkOptions  +ForwardKeySize +ForwardURICompat -ForwardDirectories
    JkRequestLogFormat "%w %V %T"
    #######    , controller         
    JkMount /servlet/* controller
    JkMount /*.jsp controller
    JkMount /*.do controller
    ############## end #######################

    workers. properties 파일 을 열 고 기록 합 니 다.
    #server
    worker.list = controller
    
    #========tomcat1========
    worker.tomcat1.port=11009  #    tomcat  
    worker.tomcat1.host=localhost
    worker.tomcat1.type=ajp13
    worker.tomcat1.lbfactor = 1
    
    #========tomcat2========
    worker.tomcat2.port=12009  #    tomcat  
    worker.tomcat2.host=localhost
    worker.tomcat2.type=ajp13   
    worker.tomcat2.lbfactor = 1
    
    #========controller=         =======
    worker.controller.type=lb
    worker.controller.balanced_workers=tomcat1,tomcat2 #  tomcat ","  
    worker.controller.sticky_session=false
    worker.controller.sticky_session_force=1
    #worker.controller.sticky_session=1

    파일 연결 을 만 들 려 면 Apache 프로필 에 추가 하고 httpd. conf 를 열 어 mod 를 추가 해 야 합 니 다.jk. conf 파일.
  • \ # vi /etc/httpd/conf/httpd.conf \ # 파일 을 엽 니 다.
  • \ # Include /etc/httpd/conf/mod_jk.conf \ # 이 줄 을 추가 하여 연결 을 만 듭 니 다.
  • Listen 80 접근 인 터 페 이 스 를 수정 할 수 있 습 니 다. 기본 값 은 80 입 니 다.

  • 연결 이 완료 되면 tomcatx 의 server. xml 설정 파일 을 수정 해 야 합 니 다.부분 변경:
    ...
    
    
    <Connector port="11009" protocol="AJP/1.3" redirectPort="8443" />
     ...
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
    ...
    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

    테스트
    이 클 러 스 터 설정 이 성공 적 으로 설정 되 었 는 지 확인 하기 위해 서 는 테스트 의 간단 한 페이지 를 만 들 고 tomcat 에 두 면 ROOT 에 접근 할 수 있 습 니 다.test. jsp 테스트 페이지 의 내용 은 다음 과 같 습 니 다.
    "text/html; charset=utf-8" %>
        "java.util.*" %>
            <html>
                <head>
                    <title>
                        Cluster App Test
                    title>
                head>
                <body>
                    Server Info:
                    request.getLocalAddr() + " : " + request.getLocalPort()+
                    "
    "
    );%> "
    ID "
    + session.getId()+ "
    "
    ); // Session String dataName=r equest.getParameter( "dataName"); if (dataName !=n ull && dataName.length()> 0) { String dataValue = request.getParameter("dataValue"); session.setAttribute(dataName, dataValue); } out.println(" Session
    "
    ); System.out.println("============================"); Enumeration e = session.getAttributeNames(); while (e.hasMoreElements()) { String name = (String)e.nextElement(); String value = session.getAttribute(name).toString(); out.println( name + " = " + value+"
    "
    ); System.out.println( name + " = " + value); } %> <form action="test2.jsp" method="POST"> : <input type=text size=20 name="dataName"> <br> : <input type=text size=20 name="dataValue"> <br> <input type=submit> form> body> html>

    아파 치 시작
  • # service httpd start
  • \ # service httpd status \ # 정상적으로 작 동 하 는 지 확인
  • tomcatx 시작
  • \ # cd /usr/local/tomcat{x}/bin \ # bin 디 렉 터 리 열기
  • \ # ./startup.sh \ # 시작
  • \ # tail -f ../logs/catalina.out \ # 인쇄 콘 솔 보기, ctrl + z 종료
  • 브 라 우 저 접근:http://123.xx.xxx.xx/test.jsp 페이지 디 스 플레이: ID 7B8C934D14F3EF669C437E5B1B8123DB. tomcat 1 리 셋: ID BBED560EC85BF46ABB639883B9DAF 754. tomcat 2... 이로써 Apache + tomcat 부하 균형 설정 이 완료 되 었 고 Apache 의 ApacheBench 를 통 해 간단하게 테스트 하고 병행 할 수 있 습 니 다.
  • \ # ab -n 4000 -c 1000 http://123.xx.xxx.xx/ \ # 4000 요청 + 1000 병발 수 + 요청 한 주소, 자신의 서버.관련 데 이 터 는 나타 날 수 있 고 먼저 tomcat 를 열 어 여러 개의 tomcat 를 설정 하여 비교 테스트 를 할 수 있 습 니 다.

  • 총결산
    사실은 어렵 지 않 습 니 다. 다만 세심 하지 못 할 뿐 모든 소프트웨어 는 설정 하고 관련 이 있어 야 합 니 다. 이 점 을 잡 고 생각 을 정리 하 며 문 제 를 해결 하 는 방법 이 많 습 니 다.인터넷 자 료 를 샅 샅 이 뒤 졌 으 니, 자신 도 나중에 약간의 보답 으로 기록 해 야 한다.관련 참고:
  • http://www.iteye.com/topic/1017961
  • http://www.centoscn.com/CentosServer/www/2015/0417/5204.html
  • http://www.ha97.com/4617.html

  • 개인 블 로그:http://www.abina.me/articles/2017/01/19/1484820029888.html

    좋은 웹페이지 즐겨찾기