VMware 설치
VirtualBox보다 설정이 편하고, 드래그 앤 드롭으로 파일 전송 가능!
CentOS-7-x86_64-DVD-숫자.iso 로 다운로드
(DVD 파일 : 일반적인 패키지가 포함되어 있고 설치 과정 중에 원하는 패키지를 선택해서 함께 설치할 수 있음)
VMware 실행 후 'Create a new virtual machine'
-> 리눅스 설치 파일 선택해서 설치 진행
#타임존 확인
ls -l /etc/localtime
date
timedatectl
#타임존 서울로 변경
timedatectl set-timezone Asia/Seoul
#방화벽 구동 확인
firewall-cmd --state
#열린 포트 확인
firewall-cmd --zone=public --list-all
#포트 개방 (80, 8080, 443, 22)
firewall-cmd --permanent --zone=public --add-port=8080/tcp
#적용
firewall-cmd --reload
#ip 주소 확인
ifconfig
아파치: httpd-2.4.37
톰캣: apache-tomcat-8.0.33
*JDK 설치 및 환경변수 설정 후 설치할 것!
*설치 파일들은 따로 구글링
- HTTPD : 아파치 웹 서버의 프로세스 이름
- APR(Apache Portable Runtime) : 기본 프로세스 처리, OS 지원 기능 등을 제공하는 라이브러리
- PCRE(Perl Compatible Regular Expressions) : 펄 호환 정규 표현식으로, 정규식 패턴 일치를 구현하는 함수의 집합
- mod_jk : Tomcat 서블릿 컨테이너를 웹서버와 연결하는 아파치 모듈
yum update -y
#1. gcc, gcc 컴파일러 설치
yum install -y gcc gcc-c++
#2. apr 설치
cd /usr/local/src/apr-1.6.5/
./configure --prefix=/usr/local/apache/apr
make
make install
#3. expat-devel 설치
yum install -y expat-devel
#4. aprutil 설치
cd /usr/local/src/apr-util-1.6.1/
./configure --prefix=/usr/local/apache/aprutil --with-apr=/usr/local/apache/apr/
make
make install
#5. pcre 설치
cd /usr/local/src/pcre-8.42/
./configure --prefix=/usr/local/apache/pcre-8.42 --enable-utf
make
make install
#7. apache 설치
cd /usr/local/src/httpd-2.4.37/
./configure --prefix=/usr/local/apache --enable-module=so --enable-so --enable-mods-shared=ssl --with-ssl=/usr/local/openssl --enable-ssl=shared --with-apr=/usr/local/apache/apr --with-apr-util=/usr/local/apache/aprutil --with-pcre=/usr/local/apache/pcre-8.42
make
make install
#8. mod_jk 설치
cd /usr/local/src/tomcat-connectors-1.2.40-src/native/
./configure --with-apxs=/usr/local/apache/bin/apxs
make
make install
#9. mod_deflate 모듈 추가
yum install -y zlib zlib-devel
cd /usr/local/apache/bin/
./apxs -i -a -c /usr/local/src/httpd-2.4.37/modules/filters/mod_deflate.c
#10. libxml2-devel 설치
yum install -y libxml2-devel
#11. security2 설치
cd /usr/local/src/modsecurity-2.9.1/
./configure --with-apxs=/usr/local/apache/bin/apxs --with-pcre=/usr/local/apache/pcre-8.42 --with-apr=/usr/local/apache/apr --with-apu=/usr/local/apache/aprutil
make
make install
#12. apache-tomcat 폴더 생성
cd /usr/local/
mkdir apache-tomcat
cd /usr/local/src/
mv apache-tomcat-8.0.33 ../apache-tomcat/프로젝트-8.0.33
#아파치 구동 -> 80포트로 접속
#apache/bin 경로에서
./httpd -k start
./httpd -k stop
#톰캣 구동 -> 8080포트로 접속
#apache-tomcat의 bin 디렉토리에서
./startup.sh
./shutdown.sh
*service나 systemctl 명령어로 구동하려면 yum install httpd -y 로 아파치 설치해야 함 (설치 시 명령어 자동 등록됨)
su -
chown -R 본인id /usr/local/apache-tomcat
*오류로 아파치 재설치 시
재컴파일 전 make clean
yum list installed | grep 으로 설치한거 확인
연동 이유
1) 여러 Tomcat 서버 간의 로드 밸런싱 및 페일오버 기능 사용 (고부하 환경의 성능을 향상시키기 위해)
2) 정적 콘텐츠의 빠른 처리 및 전달 (서블릿 컨테이너와 웹서버의 역할 분리)
3) Apache에서 사용할 수 있는 몇 가지 추가 기능 사용 (Ex. Virtual Host)
##추가
LoadModule jk_module modules/mod_jk.so
#해당 모듈이 존재한다면 실행하는 if 구문
<IfModule mod_jk.c>
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkRequestLogFormat "%w %V %T"
</IfModule>
##수정
ServerName localhost
<Directory />
#해당 디렉터리 내에서 심볼릭 링크를 가능하게 함
Options FollowSymLinks
AllowOverride none
#Require all denied
#웹 서버의 최상위 경로부터 모든 하위 경로까지 클라이언트의 액세스 허용
Require all granted
</Directory>
# Virtual hosts 하나의 서버에서 여러 웹서비스를 구동할때 사용
Include conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache-tomcat/프로젝트이름/webapps"
ServerName localhost
JkMount /* worker1
</VirtualHost>
#웹서버로부터의 서블릿 요청을 처리하기 위해 동작하는 tomcat 인스턴스
worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
#특정 port로 들어오는 내용을 수신 -> 톰캣 포트 변경 가능
#but, 1024 이하의 Well known 포트는 아무 사용자나 수정할 수 없음
#AJP 프로토콜(Apache Jserv Protocol)
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" address="0.0.0.0" />
#Engine에 관련된 가상호스트를 정의
#appBase의 상대경로는 tomcat의 설치 위치
#unpackWARs 속성은 WAR 파일을 풀어서 사용할지 여부를 설정
#autoDeploy 속성은 tomcat 가동중 어플리케이션을 배치한 경우 자동으로 배포할지 설정
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
#웹 어플리케이션을 의미. docBase에서 webapps 폴더 혹은 war 파일을 지정하여 사용.
#Context 태그가 Host 안에 없을 경우 기본적으로 webapps 하위의 Root 디렉터리를 기본 path로 설정(path="/" war파일명은 ROOT.war)
#reloadable 속성은 WEB-INF/classes 및 WEB-INF/lib 디렉토리에 변경이 발생할 때 자동 반영 여부를 결정
<Context path="" docBase="프로젝트.war" reloadable="true"/>
톰캣 접속 주소
localhost:80
IP주소:80
배포한 프로젝트 접속 주소
localhost/프로젝트
IP주소/프로젝트