現在、2つのHTTPSポート(たとえば、 443と8443 )で提供されているWebアプリケーションがあります。アプリケーションにはフロントエンドとしてApacheHTTPサーバーがあり、ポートの1つで特定のパスを除外するようにApache構成を設定する際に問題が発生しています。Apacheで以下のように設定を設定しました
<Location /MyApp>
AuthType SOME_AUTH_MODULE
require user valid-user
</Location>
<Location ~ "/MyApp/(Login.html|Welcome.html)">
Satisfy Any
Allow from all
AuthType None
Require all granted
</Location>
以下のようにApacheで仮想ホストを設定しています
<VirtualHost _default_:443>
DocumentRoot /path/to/my/files
Servername www.example.com:443
Other details go here
</VirtualHost>
<VirtualHost _default_:8443>
DocumentRoot /path/to/my/files
Servername www.example.com:8443
Other details go here
</VirtualHost>
Locationディレクティブがホストとポートの情報を取得しないことを考えると、上記の構成で予想される問題は何ですか?Locationディレクティブは最初に一致するエントリを使用しますか、それとも次々に使用しますか?
シボレスを知っている人々のための詳細
最初のロケーションエントリにより、ユーザーはSSO(シングルサインオン)環境でアプリケーションにアクセスできます。2番目のエントリは、ユーザーがSSOを経由せずに別のポート(8443)で同じ仮想ホストにアクセスできるように設計されています。私たちが見ているのは、リクエストヘッダーが処理チェーンの終わりに向かって失われていることです。2番目のLocationエントリを削除すると、すべて正常に機能します。