この章の例では、Apache Web サーバーをプロキシソフトウェアとして使用します。svc:/network/http:apache22 サービスを有効にして、Apache Web サーバーをアクティブ化します。詳細は、Apache HTTP サーバ バージョン 2.2 ドキュメントを参照してください。
これらの例で示す原則を、任意のプロキシサーバーソフトウェアに適用できるようにする必要があります。
Oracle Solaris 11.3 OS では、web/server/apache-22 パッケージに Apache Web サーバーが含まれ、/etc/apache2/2.2 に基本的な httpd.conf ファイルが含まれています。通常、次のコマンドを使用すると httpd.conf ファイルを見つけることができます。
$ pkg search -Hl -o path ':file:path:*httpd.conf' etc/apache2/2.2/httpd.conf etc/apache2/2.2/original/httpd.conf
パッケージ集積サーバーを Apache Web サーバーインスタンスの背後で実行する場合は、エンコードされているスラッシュをデコードしないように、次の設定を httpd.conf ファイルに含めます。
AllowEncodedSlashes NoDecode
スラッシュは階層パッケージ名を表すために使用されるため、パッケージ名にスラッシュがエンコードされた URL を含めることができます。たとえば、パッケージ名 pkg://solaris/developer/build/make は、Web サーバーでは http://pkg.oracle.com/solaris/release/manifest/0/developer%2Fbuild%2Fmake になります。これらのスラッシュがディレクトリ区切り文字として解釈されないようにするには、%2F でエンコードされたスラッシュをデコードしないように Apache に指示します。
この設定を省略すると、404 Not Found エラーになることがあり、検索機能に悪影響を及ぼす場合があります。
次の設定はパフォーマンスとセキュリティーに影響します。
HTTP クライアントはサーバーに対し、圧縮されたデータを受け入れることを HTTP 要求内で通知できます。Apache DEFLATE フィルタを有効にすると、カタログやマニフェストなどのメタデータの転送サイズを著しく削減できます。カタログやマニフェストなどのメタデータは、通常 90% 圧縮されます。
AddOutputFilterByType DEFLATE text/html application/javascript text/css text/plain
MaxKeepAliveRequests の値を増加することで、クライアントが接続をクローズすることなく多数のパイプライン要求を作成できるようになります。
MaxKeepAliveRequests 10000
プロキシタイムアウトは、バックエンド集積からの応答を Apache が待機する時間を設定します。ほとんどの操作では、30 秒あれば十分です。結果の件数が非常に多くなる検索は、時間がかなり長くなる可能性があります。このような検索に対応するために、タイムアウト値を大きくする場合もあります。
ProxyTimeout 30
フォワードプロキシが無効になっていることを確認します。
ProxyRequests Off