我是 Apache Server 的新手(2.0,我知道它有點太舊了,但是我的工作場所要求我學習它,因為它是我們正在使用的版本),現在嘗試讓 Apache 與 Jboss 一起工作(Jboss 作為應用程式伺服器(Apache 面向JBoss 並提供所有靜態內容)。
我在 mod_jk 的幫助下讓 Apache 與 Jboss 一起工作;但是,當我嘗試新增虛擬主機配置以使 Apache 從特定資料夾提供映像而不是推送 JBoss 提供靜態內容時,我收到 403 Forbidden 錯誤。
我瀏覽了幾個論壇和其他網站來找出這個問題的答案或解決方案,遺憾的是似乎沒有什麼對我有用! :(
請問有人可以幫我嗎?一點點解釋將是一個受歡迎的補充。
以下是我在 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>
我們將非常感謝您的幫助。
PS:我正在關注這個關聯在嘗試了其他幾個這樣的指令之後。
答案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
它不會重定向任何請求.jpg檔案發送到 jboss,相反,它會查找SchoolApp/
下面的資料夾"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,它將從那裡提供該文件。
我希望這能解釋這一點。