반응형

작성자의 개인 Study 후  오류 없는 셋팅을 위해  정리 용도로 작성됨을 안내드립니다. 

이번 Step에서는 ssl 적용하는 하는 방법을 작성하겠습니다.

 

 

환경
Naver Cloud Platform centos-7.8-64
OpenJDK 1.8
Apache 2.4.6
Tomcat 8.5.78

 

 

인증서 설치 전 확인사항

인증서 설치 시 SSL관련 설정은 기존 apache 1.x에서는 httpd.conf에서 해주었으나,

Apache 2.x 에서는 ssl.conf, apache 2.2x에서는 httpd-ssl.conf 파일에서 설정해주시면 됩니다.

 

참고1. Apache의 경우 기본적으로 mod_ssl 모듈이 설치되어 있어야 합니다.

 

저는 Apache 2.x기준으로 작성하도록 하겠습니다.

 

mod_ssl 설치
yum -y install mod_ssl

 

mod_ssl 설치 후 443포트와 https서비스를 오픈합니다.

firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-service=https

 

 

certbot 설치
yum install epel-release //저장소 활성화

yum install certbot python2-certbot-apache //인증서설치

 

 

ssl 인증서 발급

인증서 발급을 위해서는 httpd서비스를 정지 후 진행해야 한다.

systemctl stop httpd
certbot certonly --standalone -d sample.bigdragon.com //도메인 샘플

인증서 발급 시 이메일 입력, yes를 입력하고 하면 입력해주면 된다.

 

 

인증서 적용

인증서 발급이 완료되면 /etc/letsencrypt/live/도메인/ 으로 이동하면 인증서가 생성되어 있다. 이 인증서를

 

/etc/httpd/conf.d/ssl.conf에  각각의 pem에 맞춰 입력해주면 된다.

 

또한 톰캣을 이용한다면 server.xml에도 필수로 입력해줘야한다

 

ssl.conf

ssl.conf

 

1. 이전 스탭에서는 mod_jk.conf로 JKmount를 해줬다면, ssl.conf에 설정을 해주거나 Include해주면 된다.

 

 

ssl.conf

2.생성된 인증서를 ssl.conf에 각각에 맞에 입력해준다.

 

server.xml

server.xml

 

톰캣의 server.xml 부분에도 인증서 경로에 맞게 작성을 해주면 된다.

 

 

이러면 https로 정상적으로 접근 되실 거에요 ㅎㅎ

 

안되시는부분 댓글로 남겨주시면 확인 해드리겠습니다

 

감사합니다.

 

 

※개인 참고용  사용코드

yum update ==> 하고 버전업되서 에러 날 수 있음
yum clean all
yum -y install mod_ssl
yum install epel-release
firewall-cmd --permanent --zone=public --add-port=443/tcp
certbot certonly --standalone -d data.bigdragon.shop
vi /etc/httpd/conf.d/ssl.conf
vi /usr/local/instance/apache3/conf/server.xml
반응형
반응형

작성자의 개인 Study 후  오류 없는 셋팅을 위해  정리 용도로 작성됨을 안내드립니다. 

이번 Step에서는 아파치와 톰캣을 연동하는 방법을 작성하겠습니다.

 

 

 

Apache

정적인 데이터를 처리하는 웹서버로 흔히 클라이언트가 HTML, JPG, Resource 파일 같은 변하지 않는 파일을 요청하면 Apache는 해당 파일을 클라이언트에게 응답을 하는 소프트웨어.

 

Tomcat

Tomcat은 WAS(Web Application Server)로 불리며 동적인 데이터 즉 어떠한 요청에 따른 DB를 조회하고 계산하여 제공하는 등 다양한 역할을 수행하는 소프트웨어.

 

흔히 웹을 구성할 때 Apache + Tomcat을 결합하여 사용합니다. 그 이유는 Tomcat은 주로 동적인 데이터를 처리 하기 때문에 많은 리소스를 필요로 하여 많은 요청이 들어오면 부하가 걸릴 수 있는 반면 Apache는 정적인 데이터를 전달함으로써, 상대적으로 적은 리소스를 잡아 먹기 때문입니다. 이둘을 연동함으로써 정적인데이터를 요청했을 경우 Apache가 처리한 후 클라이언트에게 전달하고, 동적인 데이터를 요구하는 경우에는 Apache가 Tomcat에게 클라이언트의 요청을 전달하고 Tomcat이 요청에 따른 동적인 데이터를 만든 후 그것을 Apache에게 전달 Apache는다시 클라이언트에게 전달함으로써 좀 더 효율적으로 서버를 운영할 수 있습니다.

 

 

Apache, Tomcat설치는 이전 Step에서 다뤘으므로 생략 하도록 하겠습니다.

 

1. mod_jk 설치

먼저, mod_jk를 설치하기 전에 gcc, gcc-c++, httpd-devel 3가지의 패키지를 설치해야 합니다.

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

 

이제 톰캣 사이트에 들어가서 tomcat connector를 다운받아 줍니다

Download -> Tomcat Connecotrs -> JK ~~~~~~.tar.gz 우클릭 -> 링크 주소복사

 

 

다운받을 디렉토리 위치로 이동 후 파일을 아래 명령어로 다운로드 합니다

wget -c [복사한 링크주소]

 

다운로드 받은 파일을 압축해제 합니다

tar -zxvf [다운받은파일명]

 

해당 파일을 관리하기 편한곳으로 이동

cd [파일명] /usr/local/lib

 

native 경로로 이동

cd /usr/local/lib/[Connector디렉토리]/native

 

apxs 경로 찾기

apxs : Apache 확장기능 설치를 도와주는 유틸리티의 경로

find / -name apxs

 

make파일 생성

# native 경로에서 해야함
./configure --with-apxs=[apxs경로]

 

make 명령어로 컴파일 완료 후 make install을 실행

make && make install

 

mod_jk 설치확인

ll /etc/httpd/modules/ | grep mod_jk

 

selinux 보안관련 설정 

chcon -u system_u -r object_r httpd_modules_t /etc/httpd/modules/mod_jk.so

 

2. Apache 설정

 

2-1 httpd.conf 설정 변경

 

# vi /etc/httpd/conf/httpd.conf
# 맨 아래 추가

LoadModule jk_module modules/mod_jk.so
<VirtualHost *:80>
	ServerName localhost
    JkMount /* tomcat
</VirtualHost>

VirtualHost *:80, ServerName 두 가지 정보를 통해 들어온 요청을 어떤 톰캣에서 처리할지 결정합니다.. 지금 설정은 80 포트로 들어오는 모든 요청을 tomcat으로 보내고 있습니다.

 

 

 

 

#EX) 아래 설명을 위한 코드 입니다.
LoadModule jk_module modules/mod_jk.so
<VirtualHost *:80>
	ServerName example.com
  	JkMount /*.do tomcat2
</VirtualHost>

 

만약 위와 같이 설정하게 되면 80포트로 들어오면서 요청 URL이 example.com이고, .do로 끝나는 것들만 tomcat2에서 처리하게 됩니다. (이건 안 하셔도 됩니다. 설명을 위한 예제입니다.)

 

 

 

 

그 다음 worker를 관리하는 worker.properties의 위치와 로그파일 및 level을 관리하는 코드를 맨아래에 또 추가합니다.

해당 코드를 mod_jk.conf 파일로 따로 설정하는 방법도 있지만 간혹 연동이 안되는 경우가 있어 httpd.conf 파일에 같이 넣는 편입니다.

<IfModule mod_jk.c>
	JkWorkersFile conf/workers.properties 
 	JkShmFile run/mod_jk.shm     
 	JkLogFile logs/mod_jk.log     
 	JkLogLevel info     
 	JkLogStampFormat "[%y %m %d %H:%M:%S] " 
</IfModule>

이제 httpd.conf에서 할 작업은 끝났습니다. :wq로 나가주시면 됩니다.

 

 

2-2 workers.properties 설정

 

# vi /etc/httpd/conf/workers.properties


worker.list=tomcat
worker.tomcat.port=8009 
worker.tomcat.host=localhost 
worker.tomcat.type=ajp13 
worker.tomcat.lbfactor=1
  • worker.list: 사용할 톰캣 이름 목록
  • worker.톰캣이름.port: 톰캣의 ajp 포트 번호(기본 값은 8009)
  • worker.톰캣이름.host: 톰캣이 위치하고 있는 IP 주소(아파치와 톰캣이 한 서버에 있다면 localhost)
  • worker.톰캣이름.type: 톰캣과 연결할 때 사용할 타입
  • worker.톰캣이름.lbfactor: 로드밸런싱할 때 사용함

2-3 Tomcat 설정

# vi /usr/local/apache-tomcat-8.5.69/conf/server.xml

 <Connector protocol="AJP/1.3"
	address="0.0.0.0"
        secretRequired="false"
        port="8009"
        redirectPort="8443" />

AJP Connector 관련부분 주석을 해제하고 위와 같이 코드를 변경합니다.

 

 

3. 연동확인

위와 같이 포트를 입력하지 않아도 호출이 되면 정상적으로 셋팅 된 것 입니다.

 

막히는 부분은 댓글로 문의주시면 답변 드리겠습니다.

 

감사합니다.

 

 

출처

https://it-serial.tistory.com/72

 

[Linux] Apache와 Tomcat 연동

Apache 웹 서버 설치 & Tomcat 설치를 사전에 하셔야합니다. 링크를 참조하시면 됩니다. Tomcat은 단독으로 서비스를 할 수 있습니다. 그러나 Apache와 연동하여 사용하는 경우가 많습니다. 그 이유는 아

it-serial.tistory.com

 

https://velog.io/@park0219/Cent-OS-7-%EC%84%9C%EB%B2%84-%EC%84%B8%ED%8C%85-5%ED%8E%B8-%EC%95%84%ED%8C%8C%EC%B9%98-%ED%86%B0%EC%BA%A3-%EC%97%B0%EB%8F%99modjk

 

Cent OS 7 서버 세팅 5편 - 아파치 톰캣 연동(mod_jk)

Cent OS 7 서버 세팅 5편 - 아파치 톰캣 연동하기

velog.io

 

반응형
반응형

작성자의 개인 Study 후  오류 없는 셋팅을 위해  정리 용도로 작성됨을 안내드립니다. 

Step6은 간단한 작업이라 Shell 위주의 코드만 작성합니다.

 

 

환경
Naver Cloud Platform centos-7.8-64
OpenJDK 1.8
Apache 2.4.6
Tomcat 8.5.78

 

 

톰캣에서 인스턴스를 여러개 관리하는 방법이 있습니다.

1.  하나의 server.xml에 여러 호스트를 관리하는 방법 ( 서버 재구동 시 모든서비스가 재시작 되는 단점이 있음)

2.  tomcat의 instance 디렉토리들을 복사하여 사용(서버 재구동 시 해당 디렉토리에 있는 서비스만 재구동)

 

[CATALINA_HOME]

  • Tomcat Engine 디렉토리 : bin, lib
  • Tomcat Instance 디렉토리 : conf(설정), logs(로그), webapps(소스), work(jsp구동), temp(임시)

 

위 내용들 중  Instance 디렉토리를 아래의 절차를 거쳐 별도로 구성해 주면 된다.(Tomcat 설치 생략)

 

  1. 필요한 만큼의 Tomcat Instance 디렉토리를 생성한다.
  2. CATALINA_HOME 으로부터 필요 디렉토리를 복제한다.(conf, webapps 등 )
  3. server.xml 에서 port 등 환경을 변경한다.
  4. 인스턴스 실행/중지 스크립트를 만들고 실행한다.
  5. 방화벽에서 해당 port 를 추가한다.

 

1. Instance 디렉토리 생성

instance를 설치할 위치에서 해당 bash 실행

 mkdir -p /instance/tomcat1
 chown -R root:admGroup /instance/tomcat1

 

2.CATALINE_HOME에서 Instance 디렉토리 복사

cp -a /usr/local/tomcat8/conf /usr/local/instance/tomcat1
cp -a /usr/local/webapps /usr/local/instance/tomcat1
cp -a /usr/local/logs /usr/local/instance/tomcat1
cp -a /usr/local/work /usr/local/instance/tomcat1

 

 

3.Server.xml 수정

<Server port="8005" shutdown="SHUTDOWN">

  <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

 vi instance1/conf/server.xml 명령어 실행 후

 

Shotdown, http,https,ajp 서비스 포트를 사용할 포트로 변경 해준다.

 

4.구동 스크립트 생성

vi tomcat1/startup.sh

#!/bin/sh
export CATALINA_HOME=/usr/local/tomcat
export CATALINA_BASE=/usr/local/instance/tomcat1
$CATALINA_HOME/bin/startup.sh
vi tomcat1/shutdown.sh

#!/bin/sh
export CATALINA_HOME=/usr/local/tomcat
export CATALINA_BASE=/usr/local/instance/tomcat1
$CATALINA_HOME/bin/shutdown.sh

이렇게 설정하면 Tomcat 설치 디렉토리에서는 구동 스크립트만 빌려 각각의 인스턴스를 구동할 수 있게 된다. 구성된 instance1 디렉토리를 필요한 만큼 복제한다.

 

cp -a tomcat1 tomcat2
cp -a tomcat1 tomcat3

복제 후에는 이미 진행했던 3,4 번 단계의 각 인스턴스 설정(server.xml, startup.sh, shutdown.sh)을 변경해 준다.

 

5. 방화벽 포트 추가

server.xml에 설정한 포트들을 방화벽에 추가해준다

 

6. 각 인스턴스 구동 후 확인

/usr/local/instance/tomcat1/startup.sh
/usr/local/instance/tomcat2/startup.sh
/usr/local/instance/tomcat3/startup.sh

 

 

감사합니다.

 

출처

https://oops4u.tistory.com/2547

 

Tomcat multiple instances

Tomcat 에서 여러 인스턴스를 관리하는 방법이 있다. CATALINA_HOME 디렉토리에서 필요한 부분만 복제하고 약간의 설정을 수정하여 인스턴스들을 구성할 수 있다. server.xml 파일 하나에 여러 호스

oops4u.tistory.com

 

반응형
반응형

안녕하세요. 해당 카테고리 글은,

작성자의 개인 Study 후  오류 없는 셋팅을 위해  정리 용도로 작성됨을 안내드립니다. 

Step1은 간단한 작업이라 Shell 위주의 코드만 작성합니다.

 

 

환경
Naver Cloud Platform centos-7.8-64
OpenJDK 1.8

 

Apache 설치

-yum을 이용하거나 또는 원하는 특정 버전이 있을 경우 rpm 파일을 이용해 다운로드 합니다.

 

 

 

 

1. yum을 이용한 설치

-yum을 이용할 경우 종속 패키지가 자동으로 설치됩니다.

 

yum install httpd

 

2.rpm을 이용한 설치

-특정 버전이 필요한 경우 원하는 해당 버전의 rpm 파일을 다운로드해서 설치할 수 있습니다. ( 마찬가지로 종속패키지 자동으로 설치됩니다.)

 

yum localinstall httpd-2.4.6-95.el7.centos.x86_64.rpm ##rpm파일 인스톨

 

 

Apache 버전확인

httpd -v

 

Apache 명령어

systemctl start httpd  ## 아파치 실행

systemctl stop httpd ## 아파치 중지

systemctl status httpd ##아파치 상태확인

systemctl enable httpd ## 아차피 부팅 시 자동실행 등록

systemctl disable httpd ## 아파치 부팅 시 자동실행 해제

 

방화벽 등록

systemctl start firewalld ## 방화벽 시작

firewall-cmd --zone=public --permanent --add-port=80/tcp  ##80포트 오픈

firewall-cmd --reload ##방화벽 재적용

firewall-cmd --zone=public --list-all ##적용된 방화벽 확인

 

주소창에 http://IP:80 포트로 접근되는지 확인하면 됩니다.

 

일반계정 권한 설정

저는 Step1에서 adm 계정 생성을하고, admGroup 그룹을 만들었습니다.

 

adm계정으로 httpd 관리를 위해 sudo 권한을 주도록 하겠습니다.

vi /etc/sudoers

##souers파일에 해당 부분 입력

$admGroup ALL=NOPASSWD : /usr/bin/systemctl start httpd, /usr/bin/systemctl stop httpd
$admGroup ALL=NOPASSWD : /usr/bin/systemctl status httpd

 

해당 계정으로 암호 없이 httpd가 실행되는지 확인합니다.

 

 

 

질문은 댓글로 남겨주세요 감사합니다.

 

반응형

+ Recent posts