# 서버 환경
- 공인망 (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 접속
# 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
# 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
# 추가 설정
# 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인 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로 연결 시킴(서버 장애 대응)
#########################
# 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을 좀 더 관리하기 쉽게 데몬 서비스로 등록시키는 방법까지 알아보는 유익한 시간이었으니 잘 참고하셨으면 좋겠습니다. 감사합니다.
'리눅스(Linux) > 실습' 카테고리의 다른 글
[리눅스] Crontab : 매월 15일 새벽 4시에 web서버 자동 백업 및 백업 파일명에 백업 날짜 자동 기입 (+ at 명령어) (0) | 2024.05.03 |
---|---|
[리눅스] Samba 서버 - 리눅스와 윈도우에서 폴더 공유하기 (0) | 2024.03.21 |
[리눅스] Wordpress(워드프레스)로 나만의 웹페이지(or 블로그) 만들기 (7) | 2024.03.14 |
[리눅스] 내가 설치한 프로그램(톰캣)을 systemctl 영역으로 넣어서 관리하기 - enable, disable (0) | 2024.03.04 |
[리눅스] NFS(network file system) : Main server와 Client server에서 특정 디렉토리 공유하기 (0) | 2024.02.29 |