私は Apache サーバー (2.0、少し古すぎることは承知していますが、職場で使用しているバージョンなので学習するように求められています) の初心者で、現在は Apache を Jboss で動作させようとしています (Jboss をアプリケーション サーバーとして使用し、Apache を JBoss のフロントに置き、すべての静的コンテンツを提供します)。
mod_jk の助けを借りて Apache を Jboss で動作させましたが、JBoss に静的コンテンツを提供するようにプッシュするのではなく、Apache に特定のフォルダーからイメージを提供するように仮想ホスト構成を追加しようとすると、403 Forbidden エラーが発生します。
この問題の答えや解決策を見つけるために、いくつかのフォーラムや他の Web サイトを調べましたが、残念ながら何もうまくいきませんでした。:(
どなたか、この件について手伝っていただけますか? 少し説明していただけると嬉しいです。
以下は、httpd.conf ファイル内の仮想ホストの定義です。
<VirtualHost *:80>
ServerAdmin admin@localhost
ServerName localhost
DocumentRoot "D:/Dev-Ops/apache/Apache2/htdocs/jboss/"
<Directory "D:/Dev-Ops/apache/Apache2/htdocs/jboss/">
AllowOverride All
Order Allow,Deny
Allow from all
Require all granted
</Directory>
#rewrite incoming requests
RewriteEngine On
RewriteCond /SchoolApp%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ http://localhost:8080/SchoolApp/$1 [proxy,last]
</VirtualHost>
あなたの助けは非常にありがたいです。
追伸:私はこれをフォローしていましたリンク他の同様の指示をいくつか試した後。
答え1
ついに自分で解決しました。Mod-Jk には、コンテンツのリダイレクトを実現するための JkMount および JkUnMount ディレクティブがあります。
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "D:\Dev-Ops\apache\Apache2\htdocs"
ServerName localhost.com
JkMount /SchoolApp/* loadbalancer
JkMount /SchoolApp loadbalancer
JkUnMount /SchoolApp/*jpg loadbalancer
JkUnMount /SchoolApp/*.html loadbalancer
</VirtualHost>
JkMount /SchoolApp/*
Apacheからのすべてのリクエストをjboss WebアプリケーションSchoolAppにリダイレクトします(ここでは:http://localhost.com:8080/SchoolApp/); 使用してからは
JkUnMount /SchoolApp/*jpg loadbalancer
、jpgSchoolApp/
ファイルを jboss に渡す代わりに、その下のフォルダーを探して"D:\Dev-Ops\apache\Apache2\htdocs"
そこから画像を提供します。その下には、Jboss Web アプリケーションから要求した jpg ファイルのディレクトリ構造を模倣した適切なディレクトリ構造があります。
例えば、私がhttp://localhost.com/SchoolApp/mod-jkはリクエストをリダイレクトしますhttp://localhost.com:8080/SchoolApp/しかし、私がhttp://localhost.com/SchoolApp/welcome.jpg、このリクエストはリダイレクトされませんhttp://localhost.com:8080/SchoolApp/welcome.jpgたとえ jboss アプリケーションの下にそのようなファイルがあったとしても、代わりに apache の htdocs/SchoolApp/ フォルダの下で welcome.jpg が検索され、そこに welcome.jpg が存在する場合はそこからファイルが提供されます。
これで説明がついたと思います。