Apache-2.2

如何避免錯誤 403 Forbidden:Apache 虛擬主機配置問題

  • December 29, 2013

我是 Apache 伺服器的新手(2.0,我知道它有點太舊了,但是我的工作場所要求我學習它,因為它是我們正在使用的版本),現在試圖讓 Apache 與 Jboss 一起工作(Jboss as應用程序伺服器,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:在嘗試了其他幾個此類說明後,我正在關注此連結。

最後我自己弄清楚了。Mod-Jk 有 JkMount 和 JkUnMount 指令來完成內容的重定向。

<VirtualHost *:80>

   ServerAdmin admin@localhost.com
   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"並從那裡提供圖像,我在下面有一個適當的目錄結構,它模仿了我請求的 jpg 文件的目錄結構Jboss Web 應用程序。

例如,如果我請求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 存在,它將從那裡提供文件。

我希望這能解釋它。

引用自:https://serverfault.com/questions/563394