GitLab CE/EEをOpenLiteSpeed経由でアクセスできるようにする
概要
この記事では、GitLab CE/EEをOpenLiteSpeedのリバースプロキシ経由でアクセスできるよう設定を行います。
(画像を貼り付けていたつもりが消えていたので、いつか追加します。)
前提条件
以下のソフトウェアがインストールされている必要があります。
- GitLab CE or EE
- OpenLiteSpeed (以降 OLS と呼びます)
また、OLS側で以下の設定を行ってください。
- 80番ポート(SSLを使用する場合は443番ポートも)をリッスンするリスナー
1. gitlab.rb の書き換え
最初に、リバースプロキシを使用できるようにするための準備を行います。
external_url = 'https://gitlab.example.com'
nginx['enable'] = false
web_server['external_users'] = [ 'nobody' ]
gitlab_rails['trusted_proxies'] = [ '127.0.0.1' ]
gitlab_workhorse['listen_network'] = "tcp"
gitlab_workhorse['listen_addr'] = "127.0.0.1:8181"
1-1. 外部URLを設定
external_url
にドメインを指定します。
external_url = 'https://gitlab.example.com'
1-2. 内蔵nginx無効化
GitLabにはnginxが内蔵されており、デフォルトではそのnginxを使用して動作するようになっています。リバースプロキシを設定する場合は内蔵nginxは不要なので無効化します。
nginx['enable'] = false
1-3. OLSの実行ユーザーの指定
OLSで指定されている実行ユーザーをここで指定します。複数指定できます。
(実行ユーザーは /usr/local/lsws/conf/httpd_config.conf
で指定されていると思います)
# nobody が実行ユーザーのときの例
web_server['external_users'] = ['nobody']
1-4. 信頼するプロキシの設定
プロキシ元のIPアドレスを追加します。ここも複数指定できます。
OLSとGitLabを同一サーバーでホストしている場合は 127.0.0.1
を追加します。
gitlab_rails['trusted_proxies'] = [ '127.0.0.1' ]
1-5. GitLab Workhorseの設定
WorkhorseをTCPでリッスンするよう設定します。
同一サーバーでホストしている場合は 127.0.0.1
,それ以外の場合は適切なIPアドレスを指定します。
gitlab_workhorse['listen_network'] = "tcp"
gitlab_workhorse['listen_addr'] = "127.0.0.1:8181"
1-6. 再構成する
毎度おなじみ以下のコマンドを実行します。
$ sudo gitlab-ctl reconfigure
2. リバースプロキシの設定
OLS側でのリバースプロキシの設定を行います。SSL設定の説明は省きます。
2-1. 新たなバーチャルホストを作成する
-
「バーチャルホスト」→「+」より、新たなバーチャルホストを作成します。
-
「スクリプト/外部アプリを有効にする」を はい にして作成してください。
-
作成後、バーチャルホストを開き、「一般」タブ→「一般」の「Document Root」の項目を適当な場所に設定してください。(設定しないと 404 Not Found が発生します)
2-2. 外部アプリを構成する
-
作成したバーチャルホストを開き、「外部アプリ」タブ→「+」と進みます。タイプは「Webサーバー」とし、次へ進みます。
-
次の設定画面へ進んだら、名前、アドレス、最大接続数、初期リクエストタイムアウト、リトライタイムアウト の5つの項目を設定し、保存します。
アドレスは通常、1-5で指定したものになります。それ以外の項目は適切な値に設定します。
2-3. コンテキストを設定する
-
「コンテキスト」タブ→「+」と進みます。タイプは「Proxy」とし、次へ進みます。
-
次の設定画面へ進んだら、URIを適切な値(通常は
/
)に、Webサーバーを2-2で作成した外部アプリに設定し、保存します。
2-4. バーチャルホストマッピングを行う
「リスナー」のリスナーリストより適切なものを選び、そのバーチャルホストマップに先程設定を行ったバーチャルホストをホストしたいドメインと共に追加してください。
2-5. LiteSpeedを再起動する
Web上で緩やかな再起動を行うか、ターミナルで sudo systemctl restart lsws
を実行します。
3. アクセスできるか確認する
2-4で設定したドメインにアクセスし、GitLabの画面が表示されたら成功です。
以上で設定完了です。
Discussion