##概要
一つのサーバーでwww.example.comやexample.comにWebページなどのサービスを利用している場合、GitLabなどの他のサービスを利用するときにexample.com:3000などポート番号を指定してアクセスしたりしなければいけません。これでは格好悪かったり、80番ポート以外はアクセス出来ない環境でアクセスできなかったりします。
一般的にはリバースプロキシを使用することで、gitlab.example.comのように簡単にアクセスできるようにします。今回、Nginx+WordPressを導入しているサーバーにGitLabを導入・設定したときに少しハマったので、メモ代わりに投稿します。
##目標
www.example.comにはWordPressがアクセスできる状態として、gitlab.example.comでGitLabにアクセスできるようにする。
##環境
- CentOS 6.7
- Nginx version: 1.0.15
- GitLab version: 8.2.1
NginxはGitLab内蔵のものではなく、Nginx単体で導入したものを使用します。
##GitLabの設定
GitLabのインストール方法は公式サイトがわかりやすいと思いますのでそこを参考にしてください。
インストールが完了したらGitLabの設定ファイルをいじります。
$ vi /etc/gitlab/gitlab.rb
external_url 'http://gitlab.example.com'
nginx['enable'] = false #GitLab内臓のNginxの使用を切る
nginx['listen_port'] = 8080 #設定する内部ポート
nginx['listen_https'] = false
編集が終わったらリロードして再起動かけます。
$ gitlab-ctl reconfigure
$ gitlab-ctl restart
##Nginxのファイルを作成
Nginxのリバースプロキシの設定をします。
設定ファイルの名前はなんでもいいのですが、今回はgitlab.confにします。
$ cd /etc/nginx/conf.d
$ vi gitlab.conf
upstream gitlab{ #サブドメイン名を設定
server 127.0.0.1:8080;
}
server {
listen 80;
access_log /var/log/nginx/gitlab.access.log;
error_log /var/log/nginx/gitlab.error.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:8080;
}
}
設定を保存したらNginxを再起動します。
$ chkconfig nginx on
$ service nginx restart
##最後に
設定したURLにアクセスできればOKです。(今回はgitlab.example.com)