본문 바로가기
클라우드 아키텍처 설계 기초지식/11 IT인프라구조

IT인프라구조 - 웹서버 이중화(DNS - Load Balancing)

by Jasie 2018. 11. 12.


웹서버 이중화


DNS 서버를 이용한 로드 밸런싱

빅데이타 빅데이터 인공지능 SSL 해킹

0. 네트워크설정


 vi /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO=static

ONBOOT=yes

IPADDR=192.168.80.10

NETMASK=255.255.255.0

GATEWAY=192.168.80.2

DNS1=8.8.8.8



1. DNS 설치

명령어를 yum install -y bind-*  이용해 DNS서버를 설치한다.






DNS 설정


1. vi /etc/named.conf 에서 설정을 한다.




2.  vi /etc/named.conf 에서 실제 할당을 할 DNS IP를 설정을 한다.







AP 서버 이중화

netstat -anlp (리눅스 포트 상황보는 명령어)

netstat -ano (윈도우  포트 상황보는 명령어)



      기본확인사항


네트워크 설정

네트워크 방화벽 systemctl stop firewalld

로컬 방화벽 setenforce 0

서버 포트 확인(netstat -anlp | grep :8080)

서버 포트 확인(netstat -anlp | grep :8009)

CentOS 3개가 다 통신이 되나 확인

VMware 문제 없나 확인


로그 확인

  /var/log/messages
  /var/log/httpd/mod_jk.log


httpd를 재시작하했을 때 문제없이 동작하는 로그


[Mon Nov 12 14:09:24 2018][14898:140142213437568] [warn] jk_map_validate_property::jk_map.c (421): The attribute 

'worker.loadbalance.balanced_workers' is deprecated - please check the documentation for the correct replacement.

[Mon Nov 12 14:09:24 2018][14898:140142213437568] [info] init_jk::mod_jk.c (3591): mod_jk/1.2.46 initialized

[Mon Nov 12 14:09:24 2018][14898:140142213437568] [warn] jk_map_validate_property::jk_map.c (421): The attribute 

'worker.loadbalance.balanced_workers' is deprecated - please check the documentation for the correct replacement.

[Mon Nov 12 14:09:24 2018][14898:140142213437568] [info] init_jk::mod_jk.c (3591): mod_jk/1.2.46 initialized



웹서버 설치


웹서버 설치 : yum install httpd

웹서버 설치 : yum install httpd-devel gcc gcc-c++

웹서버 설치 :  wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.46-src.tar.gz



1) 아파치 웹서버에 모듈 적용



1. 톰캣파일을 압축해제 해줍니다.


tar zxvf tomcat-connectors-1.2.46-src.tar.gz



2. mod_jk.so파일을 생성해줍니다.

cd tomcat-connectors-1.2.46-src/native/
./configure --with-apxs=/bin/apxs
make
tomcat-connectors-1.2.46-src/native/apache-2.0 하위폴더에 mod_jk.so가 생성됨


3. mod_jk.so를 /usr/lib64/httpd/modules으로 복사해주고 권한 설정을 해줍니다.


cp mod_jk.so /usr/lib64/httpd/modules/mod_jk.so
chmod 755 /usr/lib64/httpd/modules/mod_jk.so


4. /etc/httpd/conf/httpd.conf에 내용을 추가해줍니다.

vi /etc/httpd/conf/httpd.conf


LoadModule jk_module /usr/lib64/httpd/modules/mod_jk.so

<IfModule jk_module>

      JkWorkersFile /etc/httpd/conf/workers.properties
      JkLogFile /var/log/httpd/mod_jk.log
      JkLogLevel info
      JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
      JkMount /* loadbalance
</IfModule>


2) 워커 파일 생성


1. /etc/httpd/conf/workers.properties 파일을 생성해줍니다.


vi /etc/httpd/conf/workers.properties 명령어를 이용해 생성함


worker.list=tomcat1,tomcat2,loadbalance

worker.tomcat1.type=ajp13

        worker.tomcat1.host=192.168.80.30 //톰캣서버 첫번째 IP를 써준다

        worker.tomcat1.port=8009

        worker.tomcat1.socket_connect_timeout=5000

        worker.tomcat1.socket_keepalive=true

        worker.tomcat1.lbfactor=1

 

        worker.tomcat2.type=ajp13

        worker.tomcat2.host=192.168.80.40 //톰캣서버 두번째 IP를 써준다

        worker.tomcat2.port=8009

        worker.tomcat2.socket_connect_timeout=5000

        worker.tomcat2.socket_keepalive=true

        worker.tomcat2.lbfactor=2

        worker.loadbalance.type=lb

        worker.loadbalance.balanced_workers=tomcat1,tomcat2





3) 톰캣 설정 (로드벨런싱을 위해 2대 설치)


a) JDK 설치


1. 명령어를 이용해 JDK를 설치한다.


yum install java-1.8.0-openjdk-devel.x86_64



 vi /etc/profile 


 

파일 제일아래에 아래 명령어를 추가해준다.


JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191-3.b13.el7_5.x86_64 //자바경로

export JAVA_HOME

PATH=$PATH:$JAVA_HOME/bin

export PATH


su - root  // 이명령어를 설정해줘야 경로 설정이 된다.

source /etc/profile // 이명령어를 설정해줘야 경로 설정이 된다.

java -version // 경로 설정이 제대로 되었는지 확인해준다.



b) 톰캣 설치


1. 톰캣 설치 및 압축해제


wget http://mirror.apache-kr.org/tomcat/tomcat-9/v9.0.13/bin/apache-tomcat-9.0.13.tar.gz

tar zxvf apache-tomcat-9.0.13.tar.gz


2. 해제하면서 나온 디렉토리를 /usr/local/tomcat9로 이름을 바꾸며 이동 해준다.


-> cp -a [디렉토리] /usr/local/tomcat9  -> -a :현재 폴더값을 그대로 복사한다는 뜻




c) 톰캣 설정


/usr/local/tomcat9/conf/server.xml 파일을 수정해준다.

128번째에있는     <Engine name="Catalina" defaultHost="localhost">


                                  ↓


128번째에있는     <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">




4) 웹서버 실행


각각 톰캣 실행 -> /usr/local/tomcat9/bin -> ./startup.sh

httpd 실행

httpd 서버로 접속했을 때 톰캣이 뜨면 성공




스트레스 테스트

  (1) jmeter 스트레스 테스트 도구
다운 : http://apache.tt.co.kr//jmeter/binaries/apache-jmeter-5.0.zip
압축 풀고 bin 안에 jmeter.bat 실행

    1) 설정
      [1] Thread Group 추가
TestPlan 우클릭 -> Add -> Threads -> Thread Group
Number of Threads : 접속자 수
Ramp-Up Period : 시간,초
Loop count : 반복 수

        1] HTTP Request 추가
Thread Group 우클릭 -> Add -> Sampler -> HTTP Request
Protocol : http
Server Name : 서버IP
Port : 80
Method : GET
Path : /sjb/index.jsp

        2] Summary Report 추가
Thread Group 우클릭 -> Add -> Listener -> Summary Report
        3] Graph Results 추가
Thread Group 우클릭 -> Add -> Listener -> Graph Results


공감() 과 댓글은 필자에게 큰 힘이 됩니다.

잠시 1초만 내주시면 안될까요? ~~


로그인 없이도 가능합니당 



댓글