Как избежать ошибки 403 Forbidden: проблема конфигурации виртуального хоста Apache

Как избежать ошибки 403 Forbidden: проблема конфигурации виртуального хоста Apache

Я новичок в Apache Server (2.0, я знаю, что он немного устарел, однако на работе мне приходится его изучать, поскольку мы используем именно эту версию) и теперь пытаюсь заставить Apache работать с Jboss (Jboss как сервер приложений, Apache, выступающий за JBoss и обслуживающий весь статический контент).

Мне удалось заставить Apache работать с Jboss с помощью mod_jk; однако когда я пытаюсь добавить конфигурацию виртуального хоста, чтобы 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 SchoolApp (здесь:http://localhost.com:8080/SchoolApp/); так как я использовал его,
JkUnMount /SchoolApp/*jpg loadbalancerон не будет перенаправлять никакие запросы наjpgфайлы в jboss, вместо этого он будет искать SchoolApp/папку в ней "D:\Dev-Ops\apache\Apache2\htdocs"и выдавать изображения оттуда, у меня там есть правильная структура каталогов, которая имитирует структуру каталогов для файла jpg, который я запросил из веб-приложения Jboss.

например, если я запрошу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, вместо этого он будет искать welcome.jpg в папке htdocs/SchoolApp/ в Apache, и если welcome.jpg там есть, он будет обслуживать файл оттуда.

Надеюсь, это все объясняет.

Связанный контент