서버에 게릿을 설치까지 했다.
설치를 했다는 의미는 게릿이라는 자바 웹 프로그램을 서버에 설치해서 로딩(서버 브라우저에서 localhost 로 접속) 시켰다는 의미다.
이제 이 게릿을 다른 PC에서 웹주소로 접근가능하게 만들어야 한다. (웹 페이지이므로)
이 부분은 게릿에 대한 지식보다는 Web Server 에 대한 지식이 필요하다.
방화벽(firewall)이 뭔지, Proxy 가 뭔지, http(s) 가 뭔지, DNS 가 뭔지, ….
이런 사전 지식이 아무것도 없었던 나의 삽질.
아래 두개 사이트를 메인으로 보면서 삽질했다. (얼마나 많은 사이트를 봤는지 헤아릴수가 없다…)
NAVER 형님들 : Gerrit을 이용한 코드 리뷰 시스템 - 코드 리뷰 시스템 설치
Whatman 이라는 고수 : Gerrit 설치
외부에서 우리 AriServer 로의 접속 과정을 생각해보면 아래와 같다.
필수로 해야될건 2개다.
- IP 192.168.0.99 의 8081 port 에 gerrit 연결
- 192.168.0.99 를 외부 접속 가능하게 만들기
+
추가로 해두면 참 좋은거
3. DNS 를 적용해서 ip 번호가 아닌 xxx.com 처럼 의미있는 네이밍으로 접속시키기
위 그림에서 ①,② 는 인터넷 회사에서 알아서 해주는거고 ③번이 우리가 작업해야할 연결이다.
AriServer의 외부 인터넷 API 를 위해서 Apache 웹서버를 두는것이고 이 Apache웹 서버가 AriServer 의 외부와 내부를 연결하는 API 이다.
이 부분을 다시 그려보면 대충 아래와 같다.
IP 주소는 192.168.0.99 한개로 통일되는거고 위 그림의 ① 번은 port 8081 에 할당하고 ②번은 port 9001 에 할당할 계획이다.
즉, Apache port = 8081 이고, Gerrit port = 9001 이다.
1. Apache VirtualHost file 생성
제일 먼저 해줘야 할건 apache 의 interface 를 설정해주는 일이다.
이것은 apache 의 virtual host 파일이 담당한다.
apache 설치 폴더인 /etc/apache2/sites-available 에 001-gerrit.conf 파일 (이름은 아무렇게나해도 상관없지만 001-xxx.conf 의 규칙을 지켜야 한다고 한다) 을 만들고,
여기에 필요한 내용을 붙인다. (내부 내용은 위 형님들 사이트들 참고)
① : AriServer 내부적으로 연결되는 Gerrit port - 우리는 9001 로 통신할것이기 때문에 9001 로 적어준다.
② : login 을 위한 설정 - 외부에서 처음 접속시 http://192.168.0.99:8081/login 페이지로 라우팅되도록 설정하고, 관련 설정을 넣어준다. Auth 관련된 사항은 별도 페이지에서 설명
③ : AriServer 외부와 apache가 통신할 port - 우리는 8081 로 통신
2. Apache sites-enabled 활성화
이제 이 파일이 Apache 에서 인식할 수 있도록 링크를 만들어준다.
# sites-enabled 폴더로 이동
cd /etc/apache2/sites-enabled
# 위에서 만든 conf 파일로 link 생성
sudo ln -s ../sites-available/001-gerrit.conf ./001-gerrit.conf
# site 활성화
sudo a2ensite 001-gerrit.conf
3. Apache port 설정
ports.conf 파일을 열고
8081 로 들어왔을때 9001 포트로 연결될 수 있도록 9001 virtual host 를 추가해준다.
4. Gerrit config 설정
gerrit 설정 파일을 열고
관련 웹 설정을 ip+port 주소로 바꾸어 준다.
① : Gerrit URL & Port - 외부에서는 이 canonical url 로 접속하게 된다.
② : logout 페이지 설정인데 aa:aa 를 안붙이면 이상하게 보인다. canonical url 에 /login 라우팅 페이지를 연결하면 된다.
③ : apache port
기본 설정은 끝났다.
이제 외부에서 (게릿이 설치된 서버가 아닌 다른 PC) canonicalWebUrl 로 접속해 보자.
짜잔~!
자, 이제 외부에서도 접속이 된다.
근데… 좀 찝찝하다.
https://naver.com 처럼 근사한 문자열로 접근하고 싶다.
이게 대학교때 어렴풋이 배웠던 DNS (Domain Name System) 였다. (DNS란 무엇입니까? – DNS 소개 - AWS )
DNS 작업이 필요했다.
다행스럽게도 내 회사에는 다른 목적의 서버가 있다고 한다. (application server ? )
여기에는 DNS 관련 작업이 이미 되어 있었다. 여기에다가 우리 AriServer 를 살짝 붙이는 방법을 택했다.
3번에서 DNS 처리를 해서 4번으로 연결시켜주는 형식인 것이다.
도메인 이름은 http://review.xxxxx.net 으로 정했다. (gerrithub 의 리뷰 도메인이 https://review.gerrithub.io 인것에 착안)
3번은 양차장님이 application server 단에 작업을 해주어 패스~
AriServer 가 도메인 이름을 받기 위해서 설정 파일들을 살짝만 건드려주면 된다.
다시 gerrit.config 파일을 열고
이제 외부에서 http://review.xxxxx.net 으로 접속해보자!
짜자자자잔~~~!!!!!!
감격의 순간
개인적으로 이 부분이 가장 큰 난관 이었던것 같다. 웹서버에 대한 개념 자체가 없었어서 이 부분을 잡아 나가는게 제일 힘들었다.
기초가 튼튼해야 한다는 말이 괜히 나온게 아니라는 생각이 절실히 들었던 작업이었다.
'Gerrit > Gerrit 설치 및 자체 작업' 카테고리의 다른 글
1. Gerrit 설치 (2) | 2023.10.17 |
---|---|
3. Gerrit 사용자 인증 설정 (0) | 2023.10.17 |
4. Gerrit Email 설정 (0) | 2023.10.17 |
5. Gerrit Repository 생성 및 삭제 (2) | 2023.10.17 |