Назад | Перейти на главную страницу

Как избежать ошибки 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: я следил за этим Ссылка на сайт попробовав несколько других таких инструкций.

Наконец-то разобрался сам. В 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 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, он будет обслуживать файл оттуда.

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