gitlab 을 구현한 시스템
메일 WEB 서버에서 Reserve Proxy Server
를 통해서 자체 설치한 gitlab과 연결을 하고 있는 구조입니다.
flowchart BR
A[apache web server] --Reserve Proxy--> B[gitlab server on-promise]
일반 apache 설정에서는 gitlab 에 요청을 하면 하위 URL에 제대로 요청을 할 수가 없습니다. 이를 해결하기 위해서 apache 에 reserve proxy 에 관한 설정을 해줘야 합니다.
저는 아래와 같이 80 port 로 들어온 요청을 443 으로 redirect 시켜서 서버 구성을 했습니다.
<VirtualHost *:80>
ServerName gitlab.domain.com
Redirect / https://gitlab.domain.com
</VirtualHost>
<VirtualHost *:443>
ServerName gitlab.domain.com
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://192.168.0.67:8000/
ProxyPassReverse / http://192.168.0.67:8000/
<Proxy *>
Order allow
Allow from all
</Proxy>
....
</VirtualHost>
여기서 추가를 해 줘야 하는 옵션은 두가지 입니다.
nocanon: ProxyPass 디렉티브와 함께 사용합니다.
프록시 서버가 요청 URL을 정규화 하지 않도록 지정합니다.정규화
는 URL 경로를 표준화하여 중복된 슬래시를 제거하고 상위 디렉토리 참조를 해결하는 과정입니다. 원래 요청 URL의 경로를 그대로 유지할 수 있습니다.AllowEncodedSlashes NoDecode: ProxyPass 디렉티브와 함께 사용합니다.
프록시 서버가 인코딩된 슬래시를 디코딩 하지 않도록 지정합니다. 기본적으로 Apache 는 인코딩된 슬래시를 디코딩하여 처리합니다. 인코딩된 슬래시를 그대로 유지할 수 있습니다. 일부 어플리케이션에서 인코딩 된 슬래시를 사용하는 경우 유용합니다.
<VirtualHost *:443>
ServerName gitlab.domain.com
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://192.168.0.67:8000/ nocanon
ProxyPassReverse / http://192.168.0.67:8000/
....
AllowEncodedSlashes NoDecode
</VirtualHost>
반응형
'개발' 카테고리의 다른 글
vscode dev containers (1) | 2023.12.22 |
---|---|
svn to git 마이그레이션 (맥) (0) | 2023.12.13 |
AI 분야의 프롬프트 및 프롬프트 엔지니어링 이해 (0) | 2023.04.03 |
주니어 개발자를 위한 조언 (0) | 2022.11.03 |
12 가지 유명한 오픈소스 프로젝트 (0) | 2022.11.01 |