AJP プロトコルを利用して Apache リバースプロキシを構成する
アトラシアン アプリケーションの製品内でリバース プロキシを使用できますが、アトラシアン サポートはその設定についての支援は行いません。つまり、アトラシアンではリバース プロキシに関するあらゆるサポートの提供が保証されません。
設定でサポートが必要な場合、アトラシアン コミュニティに質問を登録してください。
Apache Tomcat の “Ghostcat” 脆弱性について
このガイドに従うと、ご利用の Jira インスタンスが Apache Tomcat で最近見つかったリスクの高い脆弱性にさらされる可能性があります。
ステップ 1: Tomcat を設定する
- Jira を停止します。
$JIRA_INSTALL/conf/server.xml
の以下の要素のコメントを解除することで、Jira をホストしている Tomcat コンテナの AJP コネクターを有効化します。<Connector port="8009" URIEncoding="UTF-8" enableLookups="false" protocol="AJP/1.3" />
- Jira を起動します。
- Jira に標準 HTTP コネクタでアクセスできるかどうか (例:
http://jiraserver:8080
) をテストします。これは、Tomcat が再起動に成功しているかどうかを確認するためです。
ステップ 2: Apache HTTP サーバを設定する
Apache のインストールおよび DNS の構成に関しては、本ドキュメントでは扱っていません。また、Apache 2.2 がインストール済みであり、DNS エントリが Jira ドメイン向けに設定されているものと想定しています。Apache の設定は利用する OS によって異なるため、現在、一部のディストリビューションやそこでの設定のみドキュメントが用意されています。
2.1 プロキシモジュールを有効化する
Debian/Ubuntu
Windows/その他の OS
2.2 これらのモジュールを使用するように、Apacheを設定します
Debian/Ubuntu
Windows/その他の OS
2.3 HTTP を HTTPS にリダイレクトします
これはオプションのステップであり、HTTPS を利用する場合にのみ必要です。これは mod_rewrite (このモジュールは有効化が必要な場合があります) を使用し、HTTP VirtualHost
に以下を追加することで行います。
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
ステップ 3: Jira を構成する
- 「Jira オプション設定」の通りに、「gzip ファイル圧縮を利用する」設定をオフにします。 GZIP ファイル圧縮は、特にプロキシによるトラフィック圧縮を行う等のリバースプロキシを使った場合に、性能問題を起こすことで知られています。
- Set the Base URL to be the FQDN that Jira will be accessed on, for example http://jira.atlassian.com. This is also located in Configuring Jira options.
Jira can only be configured to respond to a single URL and the Base URL (as in Configuring Jira options) must match the URL end-users are accessing. Misconfiguration of this may cause significant problems within Jira such as the Activity Stream and Dashboard Gadgets failing to function correctly. - Test by accessing Jira on the FQDN (e.g.: http://jira.atlassian.com), ensuring that Jira is accessible and all dashboard gadgets correctly display.
トラブルシューティング
- セッションのハイジャック : mod_cache モジュールが有効になっているときにユーザー セッションがハイジャックされることがある問題が報告されています。この問題が発生した場合、
mod_cache
モジュールを無効にしてみてください。
一部の Apache HTTP Server バージョン 2 ディストリビューションではこのモジュールがデフォルトで有効になっています。 - SELinux を使用する Linux ディストリビューションで
mod_proxy
(およびmod_jk
) を有効化した際の Permission Denied エラー :mod_proxy
(およびmod_jk
) を動作させようとすると "permission denied" エラーが発生することが多くのユーザーから報告されています。これは SELinux (/etc/selinux/config
) を無効化することで解決できます。 Mac OS X 使用時の問題 : デフォルトでポート 80 を使用する webperfcache, を無効にする必要があります。あるユーザーから、これが以下にあるように Jira セッションにおいてユーザーの識別情報が混乱するという問題が起こる有力な原因だとの指摘が出ています。
なお、サポートするプラットフォームに示すように Max OS X は当社のサポート対象ではなく、当社としてはその使用は推奨いたしません。
OSX Server では、バーチャルホスト機能を提供するためにデフォルトで webperfcache を有効にしており、動的インスタンス (JIRA のインスタンスはすべて動的インスタンスです。) に対しては悪影響があり、多くの問題を引き起こします。
中でも最近指摘されている JIRA セッションへの悪影響の問題には注意する必要があります。なお、次の情報も参照してください :
http://developer.apple.com/documentation/Darwin/Reference/ManPages/man8/webperfcache.8.html
残念ながら、あるインスタンスで webperfcache を無効化しても、有効になっているインスタンスがひとつでもあると、すべてのインスタンスが引き続き webperfcache をプロキシとして使用するため、セッションに問題が発生します。
- 過剰なリダイレクト : Tomcat と Apache のどちらかでリダイレクトが行われれば十分である場合において両方でリダイレクトが行われてしまう問題です。これに対しては、Tomcat でのリダイレクトを無効化し、(Running Jira over SSL or HTTPS の説明に従って設定の変更を元に戻します。) その後リダイレクトが Apache のみで行われることを確認します。
- その他の一般的なトラブル :
- ブラウザーのキャッシュを削除してからもう一度試みます。
- Ensure that Jira works as expected when running directly from Tomcat and bypassing Apache. For example, accessing
http://jiraserver:8080
instead of http://jira.atlassian.com. - より多くの Apache デバッグ情報を得られるようにログレベルを変更して再起動します。
- Jira にアクセスし、エラーに対応する Apache ログファイル情報を確認します。
- アトラシアン Answers に質問を出して助言を求めます。
- 403 Forbidden エラー :
Apache 設定ページに
RequestHeader unset Authorization
行を追加して、認証ヘッダーを無効化します。<Location /jira> RequestHeader unset Authorization ProxyPreserveHost On ProxyPass http://jiraserver/jira ProxyPassReverse http://jiraserver/jira </Location>