jenkinsの復習をしていたんですが、持ってたVPSサーバーにjenkins環境を構築、jenkinsのURLをサブドメインにし、アクセスした時に別ポートに飛ばす仕様にしました。
前提条件として下記のような状態です。
- jenkins.example.comをサブドメインとして登録
- example.comとjenkins.example.comは同一サーバー
- example.comが80(443)で登録ずみ
- ポート8080でアクセスした時にここに飛ばす
以前nginxではやったんですが、apacheでやったことがなかったので、これを機に調査
jenkins構築は以前のものを参照。
リバースプロキシ
技術的にはリバースプロキシになります。通常は負荷軽減などで使われるケースが多いと思うのですが・・・
ちなみにリバースプロキシのイメージがわかりやすいのは以下の記事。
/etc/httpd/conf.d/jenkins.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<VirtualHost *:80> ServerName jenkins.example.com ProxyPass / http://example.com:8080/ nocanon ProxyPassReverse / http://example.com:8080/ ProxyRequests Off AllowEncodedSlashes NoDecode ErrorLog /var/log/httpd/jenkins_error_log CustomLog /var/log/httpd/jenkins_access_log combined # setup the proxy <Proxy *> Order allow,deny Allow from all </Proxy> </VirtualHost> |
上記で設定し、apache再起動で普通に動いてくれました。
https://httpd.apache.org/docs/2.2/ja/mod/mod_proxy.html
以前apacheで複数のPHPを動かした時にURLに8080ポートをつけたままにしておいたんですが(例:http://example.com:8080。限られた人間しか使わないんでなんとかなってました・・・)、これを使えば普通にURLにアクセスして制御できましたね・・・