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

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

我是 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,它將從那裡提供該文件。

我希望這能解釋這一點。

相關內容