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 ファイル圧縮は、特にプロキシによるトラフィック圧縮を行う等のリバースプロキシを使った場合に、性能問題を起こすことで知られています。
- ベース URL を JIRA がアクセスされる際の FQDN に設定します。例: http://jira.atlassian.com。これは Configuring JIRA Options にも所在します。
JIRA は単一の URL に対応するようにしか設定できず、またベース URL (Configuring JIRA Options にあるように) はエンドユーザがアクセスしている URL と一致しなくてはいけません。この設定に不具合があると、アクティビティストリームやダッシュボードガジェットが上手く機能しない等、JIRA 内に著しい問題を生じさせる場合があります。 - Test by accessing Jira on the FQDN (e.g.: http://jira.atlassian.com), ensuring that Jira is accessible and all dashboard gadgets correctly display.
トラブルシューティング
- Hijacked Sessions: Some users have reported problems with user sessions being hijacked when the mod_cache module is enabled. If these problems are encountered, try disabling the
mod_cache
module.
This module is enabled by default in some Apache HTTP Server version 2 distributions. - SELinux を使用する Linux ディストリビューションで
mod_proxy
(およびmod_jk
) を有効化した際の Permission Denied エラー :mod_proxy
(およびmod_jk
) を動作させようとすると "permission denied" エラーが発生することが多くのユーザーから報告されています。これは SELinux (/etc/selinux/config
) を無効化することで解決できます。 Running Mac OS X: Disable webperfcache, which proxies port 80 by default. A user reported this as the likely cause of Jira session problems, in the form of users' identities becoming mixed up, as below.
Additionally we do not recommend using Max OS X as it is not supported, as in our Supported platforms.
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>