概要
ApacheのProxy機能を使って任意のURLに転送します。
GitBucketとRedmineを同じサーバー上で動かしていろいろ実験したいなと思ったんですがURLに:8080
って付いてるのもなんかなーってことで
ひと手間加えてあげないと出来なかったので備忘録です。
redmineを動かすためにapacheがport80番ですでに動いていますがgitbucketをport80番で起動するとgitbucket.warに組み込まれてるjettyが競合して起動出来ません。
なのでApacheの機能であるReverse proxyを設定してport8080で起動してるけどhttp://xxx.xxx.xxx.xxx/gitbucket
でもgitbucketにアクセスできるようにします。
前回の続きです。
目次
前提
- CentOS 7 64bit(7.4.1708)
- VMware-toolsインストール済み
- yum update実施済み
- Apache/2.4.6 (CentOS)
- Redmine インストール済み
OSはMinimalインストール
Redmineは公式インストールガイドそのままでインストール
httpd.confの編集
Reverse proxyの設定を行うためにhttpd.conf
を編集します。
設定内容はGitBucketのwikiに書いてあるのでそのままコピペします。
参考:https://github.com/gitbucket/gitbucket/wiki/Reverse-proxy-with-Apache 🔗
参考:http://webos-goodies.jp/archives/51261261.html 🔗
# vi /etc/httpd/conf/httpd.conf
以下の内容をそのまま追記します。場所はどこでもいいと思います。(httpd.confのことよくわかってないです…)
今回は最後のIncludeOptional
手前に入れました。
localhost
をIPアドレスに書き換えてます。
AllowEncodedSlashes NoDecode # ... or "On" for Apache-2.2
ProxyPreserveHost On
ProxyPass /gitbucket http://localhost:8080/gitbucket
ProxyPassReverse /gitbucket http://localhost:8080/gitbucket
httpd.confのチェック
configtestで構文チェックを行います。
# service httpd configtest
AH00526: Syntax error on line 351 of /etc/httpd/conf/httpd.conf:
AllowEncodedSlashes takes one argument, Allow URLs containing '/' encoded as '%2F'
エラーが出ました。ここでハマりました。
参考:https://stackoverflow.com/questions/4390436/need-to-allow-encoded-slashes-on-apache 🔗
修正
ハマっていろいろ試しましたがエラーの通り大人しくAllowEncodedSlashes
をコメントアウトします。
# vi /etc/httpd/conf/httpd.conf
以下の通りコメントアウトし修正
# AllowEncodedSlashes NoDecode # ... or "On" for Apache-2.2
ProxyPreserveHost On
ProxyPass /gitbucket http://192.168.0.5:8080/gitbucket
ProxyPassReverse /gitbucket http://192.168.0.5:8080/gitbucket
# service httpd configtest
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
Syntax OK
「Syntax OK
」おっけーと言われました。
エラーが出ていますが修正してもよし、無視してもよしです。今回の場合、問題ありません
修正する場合は下記を参照
参考:https://blog.kujira-station.com/201501281651 🔗
gitbucket.serviceファイルの修正
前回GitBucketの自動起動設定をする際に.service
ファイルを作成しているのでそれを修正します。
# vi /usr/lib/systemd/system/gitbucket.service
--port=8080 --prefix=/gitbucket
を追加します。
[Unit]
Description=Git hosting service
[Service]
User=root
ExecStart=/usr/bin/java -jar /root/gitbucket.war --port=8080 --prefix=/gitbucket
[Install]
WantedBy=multi-user.target
変更を反映させるために再読込します。
# systemctl daemon-reload
再起動
お遊びサーバーなのでOSごとreboot
かけるほうが手っ取り早いんですが
トライアンドエラーやりまくっているときはそんな面倒なことやってられません
# systemctl restart httpd.service
# systemctl restart gitbucket.service
restart
かける
確認
http://xxx.xxx.xxx.xxx/gitbbucket
にアクセス
(status
で確認したほうが早い)
参考サイト様
記事中で紹介させて頂いたサイト(記事)様
雑感
Apacheっていろんな機能あるんすね…