Java Webアプリケーションコンテンツを提供するために、以下のリバースプロキシ設定でApacheを実行しています。
<VirtualHost *:80>
SSLProxyEngine on
ProxyPreserveHost On
ProxyRequests Off
ServerName www.example.com
ServerAlias example.com
<Location />
Order deny,allow
Allow from all
SetOutputFilter INFLATE;DEFLATE
ProxyPass http://localhost:7070/
ProxyPassReverse http://localhost:7070/
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
</Location>
</VirtualHost>
今、静的ファイルフォルダを追加し、同じドメイン名で「/auth」パスの下で提供されるようにしたいです https://example.com/auth
そこで上記の設定のすぐ下に以下の設定を追加しました
<Location /auth>
Require all granted
Allow from all
</Location>
Alias "/auth" "/var/www/html/auth"
DocumentRoot /var/www/html/auth/
<Directory /var/www/html/auth>
Require all granted
DirectoryIndex index.html
</Directory>
しかし、「https://example.com/auth」を試しても、Java Webアプリケーションにアクセスし、404が返されます。しかし、localhostでcurlすると、Webページのコンテンツが表示されます。
curl http://localhost
/var/www/html/auth/の静的コンテンツにアクセスする方法 https://example.com/authメールアドレス
答え1
ディレクティブを使用して、プロキシからその場所を明示的に削除する必要がありますProxyPass "!"
。これは、プロキシする必要のない場所で実行する必要がありますLocation
。このブロックは次のように記述する必要があります。後プロキシ ブロックは次のようになります。
<Location />
ProxyPass http://localhost:7070/
(...)
</Location>
<Location /auth>
ProxyPass "!"
</Location>