Jira SSL ALB 을 아래 가이드에 따라 설정하세요.
1. AWS Security Groups 을 구성하세요.
EC2 instance에 대한 AWS Security Groups에서 아래 4가지 포트가 허용되어야 합니다.
8080
8081
8082
80
이를 통해 Jira 접근성 테스트를할 수있을 뿐만 아니라 ELB가 EC2 instance 에서 Jira와 통신할 수 있습니다.
2. Tomcat을 설정하세요.
하나 또는 두 개의 proxy 커넥터 역할을 하고 다른 하나는 proxy 우회용(troubleshooting 용)으로 사용하도록 Tomcat 커넥터를 구성합니다.
JIRA_Install/conf/server.xml
파일에서 설정이 가능합니다.
<Connector port="8080" maxThreads="150" minSpareThreads="25" connectionTimeout="20000" enableLookups="false" maxHttpHeaderSize="8192" protocol="HTTP/1.1" useBodyEncodingForURI="true" redirectPort="8443" acceptCount="100" disableUploadTimeout="true"/>
2. 위 커넥터의 복사본을 2개 만들고 아래와 같이 3개를 모두 수정합니다.
<!-- 1. Add proxyName and proxyPort to the original connector that uses port 8080 - This connector is to be used for HTTP access via AWS ELB --> <Connector port="8080" maxThreads="150" minSpareThreads="25" connectionTimeout="20000" enableLookups="false" maxHttpHeaderSize="8192" protocol="HTTP/1.1" useBodyEncodingForURI="true" redirectPort="8443" acceptCount="100" disableUploadTimeout="true" proxyName="jira.aws.elb" proxyPort="80"/> <!-- 2. Add proxyName, proxyPort, scheme, and secure to the second connector - modify it to use port 8081 - This connector is to be used for HTTPS access via AWS ELB --> <Connector port="8081" maxThreads="150" minSpareThreads="25" connectionTimeout="20000" enableLookups="false" maxHttpHeaderSize="8192" protocol="HTTP/1.1" useBodyEncodingForURI="true" redirectPort="8443" acceptCount="100" disableUploadTimeout="true" proxyName="jira.aws.elb" proxyPort="443" scheme="https" secure="true"/> <!-- 3. Modify the third connector to use port 8082 without adding anything else - This connector is to be used for bypassing proxy e.g. JIRA can be accessed directly via http://ec2-hostname:8082 --> <Connector port="8082" maxThreads="150" minSpareThreads="25" connectionTimeout="20000" enableLookups="false" maxHttpHeaderSize="8192" protocol="HTTP/1.1" useBodyEncodingForURI="true" redirectPort="8443" acceptCount="100" disableUploadTimeout="true"/>
3. JIRA를 다시 시작하고 다음을 통해 액세스할 수 있는지 확인합니다. (모두 Proxy 우회).
3. HTTP 액세스를 위한 ELB 구성
EC2 관리에서 대상 그룹으로 이동하여 다음과 같이 새 대상 그룹을 생성합니다.
이름: ELB-HTTP-access
프로토콜: HTTP
포트: 80
대상 그룹에 대상 추가:
위의 대상 그룹 선택 → 대상 탭 열기 → 편집 으로 갑니다.
실행 중인 JIRA instance를 선택합니다. (그렇지 않은 경우 위의 2.3단계를 다시 확인합니다.)
포트를 8080 으로 수정합니다.
등록된 항목에 추가합니다.
EC2 관리에서 Load Balancers로 이동하여 아래과 같이 새 Load Balancers를 생성 합니다.
유형: Application Load Balancer
이름: JIRA-ELB
로드 밸런서 프로토콜: HTTP
로드 밸런서 포트: 80
가용 영역: EC2 instance와 동일한 VPC 를 선택한 후 2개의 Availability Zones을 선택합니다.
보안 그룹: 적절한 보안 그룹 선택
대상 그룹: 존재하는 대상 그룹
이름: ELB-HTTP-access
검토 및 만들기
4. HTTPS 액세스를 위한 ELB 구성
EC2 관리에서 대상 그룹으로 이동하여 다음과 같이 새 대상 그룹을 생성합니다.
이름: ELB-HTTPS-access
프로토콜: HTTP
포트: 80
대상 그룹에 대상 추가:
위의 대상 그룹 선택 → 대상 탭 열기 → 편집 으로 갑니다.
실행 중인 JIRA instance 를 선택합니다. (그렇지 않은 경우 위의 2.3단계를 다시 확인합니다.)
포트를 8081 로 수정합니다.
등록된 항목에 추가합니다.
EC2 관리에서 Load Balancers로 이동하여 3.3단계에서 생성한 기존 Load Balancers 를 편집합니다.
Load Balancers 선택 → 리스너 탭 열기 → 리스너 추가
프로토콜: HTTPS
포트: 443
기본 대상 그룹: ELB-HTTPS-access
SSL 인증서 선택 또는 업로드
5. HTTP-HTTPS 리디렉션 구성하기
How do I redirect HTTP traffic on my server to HTTPS on my load balancer? 에 따르면 EC2 instance에 추가 프록시 서비스가 설치되어 있어야 합니다. 이 예시에서는 Nginx 를 사용합니다.
EC2 instance에 Nginx를 설치합니다. 이것은 JIRA가 설치된 동일한 인스턴스일 수 있습니다. Ubuntu 14.04 LTS에 Nginx를 설치하는 방법을 참고하여 Nginx가 80포트 에서 실행되고 있는지 확인할 수 있습니다.
HTTP에서 HTTPS로 요청을 리디렉션하도록 Nginx 구성을 수정합니다.(
server_name
을 수정합니다.)server { listen 80; server_name jira.aws.elb; if ($http_x_forwarded_proto != "https") { rewrite ^(.*)$ https://$server_name$REQUEST_URI permanent; } }
Nginx를 다시 시작합니다.
ELB-HTTP 액세스 대상 그룹 편집합니다. (3.2 단계 참조):
포트 8080 에서 수신 대기 중인 현재 대상 제거합니다.
Nginx가 실행 중인 EC2 instance를 선택하십시오.
포트를 80 (기본값)으로 수정합니다.
등록된 항목에 추가합니다.
6. JIRA 데이터 센터를 사용하는 경우
JIRA Data Center를 사용하는 경우 3.2단계 및/또는 4.2단계에서와 같이 모든 JIRA 노드를 대상 그룹에 추가할 수 있습니다. 올바른 instances를 선택하고 올바른 Tomcat 포트를 사용하기만 하면 됩니다.
(모든 노드에 대해 Tomcat을 유사하게 구성할 수 있습니다. 2단계 참조).
또한, 다음 단계에 따라 Load Balancer Stickiness를 활성화해야 합니다.
해당 대상 그룹 선택 → 설명 탭 열기 → 속성 편집 합니다.
Load Balancer generated cookie stickiness 활성화합니다.
저장합니다.
허가하여야하는 Port 및 설정 방안이 구성되어있으며 ALB쪽에 인증서가 정상적으로 반영되어있다면
Tomcat의 server.xml 파일에서 reverse proxy 설정을 구성해주시면 정상적으로 서비스가 됩니다.