文書の表示以前のリビジョン文書の先頭へ この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。 # Apache + Redmine(Docker) 参考: - [Apacheで簡単にリバースプロキシ構築(SSL通信転送付き)](https://blog.neet-shikakugets.com/construct-reverse-proxy-using-apache) - [ApacheリバースプロキシでHTTPSリダイレクトをかける方法](https://suwaru.tokyo/apache%e3%83%aa%e3%83%90%e3%83%bc%e3%82%b9%e3%83%97%e3%83%ad%e3%82%ad%e3%82%b7%e3%81%a7https%e3%83%aa%e3%83%80%e3%82%a4%e3%83%ac%e3%82%af%e3%83%88%e3%82%92%e3%81%8b%e3%81%91%e3%82%8b%e6%96%b9%e6%b3%95/) ##### 環境 - CentOS Stream 9 (ホスト環境) - ホストに Apache 2.4.53をインストール済み - SSL証明書として Let's Encrypt を利用 - ホストに対してhttps通信が可能 - ホストのグローバルIPアドレスに関連付けされたドメイン名を取得済み - Docker 20.10.21 がインストール済み - Docker上において、Redmineコンテナが動作しており、(ホスト)8081→80(Redmine)のポート設定になっている ##### 構築背景 Docker上でhttps通信用の中継Webサーバを立ててもよかったが、 既に構築しているホスト上のWebサーバ(Apache)を中継させたかった。 そのため、コンテナ上のRedmineに直接アクセスするのではない。 ##### リバースプロキシ及びリダイレクトの設定 ホスト上のWebサーバを中継して、https通信を行うために、Apacheにリバースプロキシを設定する。 『Redmineではログイン後にリダイレクトを行うため、リバースプロキシを設定するだけでは、 ログイン画面はhttps通信ができても、ログイン後はhttp通信になる。』(著者の環境及び能力ではこうなった…) そのため、リダイレクトですべてのhttp通信をhttps通信にリダイレクトするようにして、 Redmineログイン後もhttps通信となるように設定を行う。 まずは、リダイレクト設定のために、「httpd.conf」を編集する。 ``` $ sudo vi /etc/httpd/conf/httpd.conf ・・・ ----------追記部分----------- <VirtualHost *:80> ProxyRequests off RewriteEngine On RewriteRule ^/$ https://<ドメイン名>/ Redirect / https://<ドメイン名>/ </VirtualHost> ------------------------------ ・・・ # Load config files in the "/etc/httpd/conf.d" directory, if any. IncludeOptional conf.d/*.conf おそらく「IncludeOptional・・・」よりも上部の方がよさそう。 ``` 次にリダイレクトさせるために、「ssl.conf」を編集する。 ``` $ sudo vi /etc/httpd/conf.d/ssl.conf #<VirtualHost _default_:443> ←コメントで削除 <VirtualHost *:443> ←追記 SSLProxyEngine on ProxyPass <path> <アプリのURL> ProxyPassReverse <path> <アプリのURL> 例えば、 <path> = /redmine <アプリのURL> = http://localhost:8081/redmine/ ``` 上記2つのファイルを編集後、文法チェックを行い問題がないことを確認する。 ``` $ sudo httpd -t Syntax OK ``` 確認後、apacheを再起動させて、設定したパスを入力して、https通信ができていることを確認する。 ``` $ sudo systemctl restart httpd ``` Docker/Apache_Redmine.txt 最終更新: 2025/04/12 05:15by 127.0.0.1