CentOS 에서 nginx 를 설치하고 SSL 설정후 JIRA 와 연계하기.
nginx 설치
RHEL/CentOS Ubuntu 에 nginx 설치 참고
nginx 설정
우분투처럼 가상 호스트 폴더를 만들고 JIRA 설정 파일 위치 시킨다.
/etc/nginx/sites-enabled/jira.example.com
server {
server_name jira.example.com;
listen 80;
location / {
return 301 https://$server_name$request_uri;
}
}
server {
listen 443;
server_name jira.example.com;
charset utf-8;
access_log /var/log/nginx/jira-example.com-ssl.access.log main;
error_log /var/log/nginx/jira-example.com-ssl.error.log notice;
client_max_body_size 50M;
location / {
proxy_pass http://127.0.0.1:9080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~ /\.ht {
deny all;
}
#location = /favicon.ico { access_log off; log_not_found off; }
#location = /robots.txt { access_log off; log_not_found off; }
ssl on;
ssl_certificate /etc/pki/tls/certs/example.com.crt;
ssl_certificate_key /etc/pki/tls/private/example.com.key;
}
BASH
nginx 재시작
service nginx restart
CODE
JIRA 설정
JIRA 는 메인 사이트를 https 로 설정했을 경우 http 로 연결하면 다음과 같은 예외를 발생시키고 서비스가 제대로 되지 않는다.
com.atlassian.gadgets.dashboard.internal.diagnostics.UrlSchemeMismatchException: Detected URL scheme, 'http', does not match expected
scheme 'https'
at com.atlassian.gadgets.dashboard.internal.diagnostics.Diagnostics.checkExpectedScheme(Diagnostics.java:64)
at com.atlassian.gadgets.dashboard.internal.diagnostics.Diagnostics.check(Diagnostics.java:36)
at com.atlassian.gadgets.dashboard.internal.diagnostics.DiagnosticsServlet.executeDiagnostics(DiagnosticsServlet.java:97)
at com.atlassian.gadgets.dashboard.internal.diagnostics.DiagnosticsServlet.doPost(DiagnosticsServlet.java:65)
CODE
이는 nginx 의 요청에 대해 JIRA 가 응답할 때 http로 연결되어 있어서 발생하므로 지라를 구동하는 톰캣에 다음 설정을 추가해 주어야 한다.
- conf/server.xml 편집
다음과 같이 http 커넥터 항목에 proxyName, proxyPort, scheme, secure 항목을 추가한다.
<Connector port="9080"
maxThreads="150"
minSpareThreads="25"
connectionTimeout="20000"
enableLookups="false"
maxHttpHeaderSize="8192"
protocol="HTTP/1.1"
useBodyEncodingForURI="true"
redirectPort="9443"
acceptCount="100"
disableUploadTimeout="true"
<!-- 추가 -->
proxyName="jira.lesstif.com"
proxyPort="443"
scheme="https" secure="true"
/>
XML
- 지라를 재구동한다.
Ref