본문 바로가기

리눅스(Linux)/실습

[리눅스] centos7(linux) 에서 NginX, Tomcat 다운로드 및 연동하기 + haproxy 설정 및 장애 대응, Tomcat demon 시스템 등록

반응형

# 서버 환경

- 공인망 (window2003) : 192.168.1.201/24   gw 192.168.1.2  dns 8.8.8.8

- 사설망 web server (nginx, centos7 linux) : 100.100.100.100/24   gw 100.100.100.1  dns 8.8.8.8

- 사설망 was server (tomcat, centos7 linux) : 200.200.200.200/24   gw 200.200.200.1  dns 8.8.8.8

 

# Nginx 다운로드 - centos7(linux)

yum update

mkdir /etc/yum/repos.d
vi /etc/yum/repos.d/nginx.repo
#########################
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
#########################

yum -y install nginx
systemctl start nginx   ( = systemctl enable nginx --now )
systemctl enable nginx
systemctl status nginx

# 브라우저에`http://서버 IP 주소`입력하여 nginx 접속

nginx 연결 완료

 

# Tomcat 다운로드 - centos7(linux)

yum install -y java-11-openjdk.x86_64  # 자바 다운로드
# java -version   # 자바 다운로드 확인
yum -y install wget
wget http://archive.apache.org/dist/tomcat/tomcat-9/v9.0.4/bin/apache-tomcat-9.0.4.tar.gz
tar -xvf apache-tomcat-9.0.4.tar.gz
mkdir /usr/local/tomcat
mv apache-tomcat-9.0.4/ /usr/local/tomcat
/usr/local/tomcat/apache-tomcat-9.0.4/bin/startup.sh

# 브라우저에`http://서버 IP 주소:8080`입력하여 tomcat 접속

yum -y install net-tools
netstat -an | grep 8080

 

tomcat 연결 완료

 

# NginX - Tomcat 연동 (8080 굳이 안쳐도 되게)

#nginx 다운로드 된 곳(web)에서 진행

# nginx.conf 혹은 default.conf 열기
chmod +w /etc/nginx/conf.d/default.conf
vi /etc/nginx/conf.d/default.conf
#########################
#location 부분 맨 아래 추가
proxy_pass http://localhost:8080;       # proxy_pass http://200.200.200.200:8080;
#########################
systemctl restart nginx

8080 안쳐도 자동 연결

 


 

# 추가 설정

#  Haproxy 구성(centos8)

: haproxy 서버 (centos8 linux ) : 192.168.1.202/24   gw 192.168.1.2  dns 8.8.8.8

yum -y install haproxy
vi /etc/haproxy/haproxy.cfg 
#############################
63   80
81  ip 변경(200,201 설정)
#############################저장
systemctl start haproxy
systemctl enable haproxy
systemctl status haproxy

curl 192.168.1.10

Haproxy (centos8)

haproxy인 202(centos8)을 쳤을 때, 라운드로빈 방식으로 200(centos7), 201(centos7-2)이 번갈아서 나옴

 

 

 

# 200(centos7), 201(centos7-2), 202(centos8) 어떤 ip를 쳐도

# 201 tomcat 화면만 나오게 하기(200 서버 장애시 대응)

# 200 설정 수정

# 200 was 서버
# tomcat down
./shutdown.sh    # 서버 장애가 있었다는 가정

# 200 web 서버
# 경로 변경
vi /etc/nginx/conf.d/default.conf
#########################
proxy_pass http://192.168.1.201:8080;
# localhost인 192.168.1.200이 아닌 192.168.1.201의 ip를 줘서 201로 연결 시킴(서버 장애 대응)
#########################

200 tomcat 죽이기(201 tomcat 으로 연동하기 위해)
201 tomcat 으로 연동하기 (200에서 설정)

 

# Tomcat 서비스 systemctl 등록 방법(demon으로)

/etc/systemd/system/ 디렉토리에 tomcat.service 파일을 생성
# cd /etc/systemd/system
# 여기있는 서비스들은 서비스이름.service 파일명을 가지며, systemctl 명령어로 제어할 수 있다.

vi /etc/systemd/system/tomcat.service
######################################
[Unit]
Description=tomcat 9
After=network.target syslog.target
[Service]
Type=forking
Environment="/usr/lib/jvm/java-11-openjdk-11.0.18.0.9-0.3.ea.el8.x86_64"  # Environment="톰캣 경로"
Environment="/usr/local/tomcat/apache-tomcat-9.0.4"
User=root
Group=root
ExecStart=/usr/local/tomcat/apache-tomcat-9.0.4//bin/startup.sh   #ExecStart=톰캣 경로/bin/startup.sh
ExecStop=/usr/local/tomcat/apache-tomcat-9.0.4//bin/shutdown.sh   #ExecStop=톰캣 경로/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
######################################

#※ 만약 톰캣에 JAVA_HOME 설정이 되어있지 않은 경우는 Environment 설정을 아래와 같이 해보아라.
#Environment="JAVA_HOME = 자바 경로"
#Environment="CATALINA_HOME = 톰캣 경로"
#본인처럼 이미 톰캣에 자바 설정이 되어있으므로 따로 설정하지 않았다. (설정하면 오히려 서비스 구동이 되지 않았다.)

# 톰캣의 자바 설정 확인을 하고 싶다면?
#"톰캣 경로/bin"에서 setclasspath.sh 파일을 열어 JAVA_HOME 설정이 되어있는지 확인!!!

# systemctl 등록 완료
systemctl enable tomcat.service
systemctl start tomcat.service 
systemctl stop tomcat.service
#이제 systemctl 명령어를 통해 수동으로 톰캣 서비스를 실행 및 중지, 활성화 및 비활성화 시킬 수 있다

 


 

오늘은 리눅스 centos7 환경에서 web서버에서 NginX를, was서버에서 Tomcat 다운로드하여 연동하는 방법을 배워보았습니다. 또한 haproxy를 통해 라운드로빈 방식으로 두 서버에 번갈아 접속하는 방법, 다른 서버(200) 다운시 정상작동하는 한 서버(201)로만 경로를 수정하는 방법도 함께 배워보았습니다. 더불어 tomcat을 좀 더 관리하기 쉽게 데몬 서비스로 등록시키는 방법까지 알아보는 유익한 시간이었으니 잘 참고하셨으면 좋겠습니다. 감사합니다.

반응형