반응형

 

 

  • Apache httpd 에러 발생 (AH00558: httpd: Could not reliably determine the server's fu...sage)

해당 에러는 설치 후 서비스 start 할 때 자주 발생 합니다. httpd.conf 파일에서 ServerName을 설정해주면 간단히 해결이 가능 합니다.

vi /etc/httpd/conf/httpd.conf

# ServerName 단어 검색
/ServerName

# 아래 내용 삽입
ServerName=localhost

:wq

systemctl start httpd

 

반응형
반응형

 

  • 구성 환경

  • OS : CentOS 7.7 1908
  • APP : apache-2.4.6 / tomcat-9.0.31 or 8.5.51 or 7.0.100 / openJDK-1.8.0.242.b08-0.el7_7.x86_64 / mod_jk tomcat-connectors-1.2.46
  • 구성 내용 : apache 서버, tomcat 서버 물리적 분리 후 mod_jk 연동 (SSL 연동 X)

 

  • Apache 설정

apache 서버에서 설정해야할 파일은 아래 이미지와 같이 httpd.conf에 작성되어 있는 JkWorkersFile 입니다.

 

workers.properties 파일에서 저는 아래와 같이 설정 하였습니다. 

worker1(192.168.0.10) , worker2(192.168.0.11) 두 서버를 이중화 해두었고, 각각의 worker에 임의의 키를 작성 했습니다.작성한 키는 자신의 마음대로 소문자,대문자,숫자,특수문자를 섞어서 사용해도 되며 worker1과 worker2의 secret key가 달라도 됩니다.

 

  • Tomcat 설정

Tomcat 설정은 server.xml 파일에 아래와 같이 사용하시면 됩니다. Tomcat 7.0.100, 8.5.51, 9.0.31 버전의 경우 secretRequired가 기본값으로 되어있으므로 따로 작성 안하셔도 되고, Apache 서버에서 적어뒀던 임의의 Key를 secret 속성에 작성, address는 Tomcat 서버 IP를 작성 해주시면 됩니다.

위에 언급한것보다 낮은 버전의 경우 requiredSecret 속성을 사용하셔서 True를 해주신 후 하셔야 할겁니다. (이하 버전의 경우 테스트는 직접 해보지 않았습니다)

 

  • 통신 확인

Apache와 Tomcat을 재시작 해주신 후 정상적으로 통신이 되는지 확인 합니다.

 

반응형
반응형

 

  • Apache 2.4.6 / Tomcat 9.0.31 설치

우선 아래 selinux를 해제 해주시고 firewalld 중지 시켜줍니다. (사용하실분은 정책 넣어주세요.)

# firewalld 중지
systemctl stop firewalld
systemctl disabled firewalld

# selinux 중지
setenforce 0

vi /etc/sysconfig/selinux
SELINUX=disabled

 

아래 코드를 입력하여 Apache 2.4.6 버전과 tomcat-connector를 설치 해줍니다.

yum install httpd httpd-devel gcc gcc-c++

# tomcat-connector 설치
wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.46-src.tar.gz
tar zxvf tomcat-connectors-1.2.46-src.tar.gz
cd tomcat-connectors-1.2.46-src/native/
./configure --with-apxs=/bin/apxs
make
make install


## /usr/lib64/httpd/modules/mod_jk.so 파일이 존재하지 않을 경우 아래 내용 실행
cp -p mod_jk.so /usr/lib64/httpd/modules/mod_jk.so
chmod 755 /usr/lib64/httpd/modules/mod_jk.so

 

아래 코드를 입력하여 jdk와 tomcat 9.0.31 설치 해줍니다.

# JDK 설치
yum -y update
yum install java-1.8.0-openjdk-devel.x86_64

# JDK 환경 변수 설정
vi /etc/profile

# 맨 아래에 내용 작성
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64
export JAVA_HOME
PATH=$PATH:$JAVA_HOME/bin
export PATH
:wq

# 설정 내용 적용
source /etc/profile


# 1.8.0 으로 재대로 출력 되는지 확인
java -version

# tomcat 9.0.31 설치
wget http://mirror.navercorp.com/apache/tomcat/tomcat-9/v9.0.31/bin/apache-tomcat-9.0.31.tar.gz
tar zxvf apache-tomcat-9.0.31.tar.gz
mv apache-tomcat-9.0.31 /usr/local/tomcat9

 

  • Apache-Tomcat 로드밸런싱 설정

  • 1. Apache 설정

아래 설정은 URL에 .jsp로 끝나는 모든것은 loadbalancer 를 사용하도록 합니다. loadbalancer는 사용자 임의로 정할 수 있습니다. (파일 경로 : /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 /*.jsp loadbalancer
</IfModule>

 

worker.list로 로드밸런싱을 사용할 tomcat을 묶어줍니다. 위의 /*.jsp 뒤에 사용한 이름을 작성해주어야 합니다.

host는 tomcat ip를 적고 port는 ajp를 사용할 포트를 정해 줍니다. 임의로 설정 가능 합니다.

lbfactor는 로드밸런싱을 얼마나 할지를 정하는데, 모두 1로 정하면 라운드로빈(roundrobin) 방식 으로 로드 밸런싱되며 각각의 톰캣별로 로드밸런싱할 비율을 정해줄 수 있습니다. (파일 경로 : /etc/httpd/conf/httpd.confworkers.properties )

worker.list=loadbalancer

worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=worker1,worker2
worker.loadbalancer.sticky_session=1

worker.worker1.type=ajp13
worker.worker1.host=192.168.0.10
worker.worker1.port=8010
worker.worker1.lbfactor=1

worker.worker2.type=ajp13
worker.worker2.host=192.168.0.11
worker.worker2.port=9010
worker.worker2.lbfactor=1

 

이것으로 apache 설정은 모두 종료 되었으니 systemctl restart httpd 입력하여 옵션을 적용 시켜주세요.

 

  • 2. tomcat 설정

 vi /usr/local/tomcat9/conf/server.xml 후 아래와 같이 설정 해줍니다. 저의 경우 apache 에서 설정한대로 192.168.0.10은 8010, 192.168.0.11은 9010 포트를 사용해야하므로 각 서버에 맞게 포트를 할당 합니다.

또한 address="0.0.0.0" 와 SSL설정을 하지 않을것이므로 secretRequired="false" 을 넣었습니다. (tomcat 최신 버전에만 해당 합니다.)

 

이후 /usr/local/tomcat9/bin/startup.sh을 입력하여 톰캣 실행 후 http://[apache ip]/index.jsp 로 접근하여 로드 밸런싱을 확인 하시면 되고, 저는 apache 설정에서 tomcat 을 모두 lbfactor=1을 주었으므로 라운드로빈 방식으로 동작하게 되어 엔터를 한번 칠때마다 아래 이미지처럼 번갈아가며 출력 됩니다.

로드밸런싱 확인 시 각 서버별로 /usr/local/tomcat9/webapps/ROOT 디렉토리에 jsp 파일을 조금씩 다르게 설정하여 확인하시는게 편합니다. 

 

반응형
반응형

 

  • CentOS 7.7 DHCP 서버 구축

DHCP 서버 구축은 굉장히 간단합니다. dhcp 관련 패키지 설치 후 임대할 네트워크 정보를 입력해주면 됩니다.

yum -y install dhcp*

vi /etc/dhcp/dhcpd.conf

subnet 192.168.0.0 netmask 255.255.255.0 {
        range 192.168.0.100 192.168.0.200;
        option subnet-mask 255.255.255.0;
        option routers 192.168.0.254;
        option broadcast-address 192.168.0.255;
        option domain-name-servers 8.8.8.8, 168.126.63.1;
        default-lease-time 7200;
        max-lease-time 36000;
}
:wq

systemctl start dhcpd
systemctl enable dhcpd
  • range 192.168.0.100 192.168.0.200 : 임대할 IP의 목록
  • option subnet-mask 255.255.255.0 : 해당 네트워크의 넷마스크
  • option routers 192.168.0.254 : 게이트웨이 주소
  • option broadcast-address 192.168.0.255 : 브로드캐스트로 사용할 주소
  • option domain-name-servers 8.8.8.8, 168.126.63.1 : DNS 서버의 주소를 지정
  • default-lease-time 7200 : 임대 시간 (초단위)
  • max-lease-time 36000 : 갱신 과정을 거쳐 최대로 가지고 있을 수 있는 시간 (초단위)

DHCP 서버는 UDP 67번 포트, 클라이언트는 UDP 68번 포트를 사용하므로 이에 맞춰 방화벽 정책을 수정 후 테스트 하시면 됩니다.

당연히 클라이언트에서는 정적 IP 설정이 아닌 dhcp 로 설정 해두어야 합니다.

또한 DHCP 기능은 리눅스, 윈도우, 공유기, 라우터 등 다양한 장비에서 지원 합니다. 하지만 DHCP는 Discover 에서 브로트캐스트 통신으로 DHCP 서버를 찾기 때문에, LAN 구간을 넘어선 곳에 DHCP를 설정하고 싶다면 게이트웨이가 되는 네트워크 장비의 DHCP relay agent 기능을 지원하는지 확인 후 해당 기능을 이용하여 설정해주어야 합니다.

 

반응형

+ Recent posts