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

Отсутствующие изображения в Apache ProxyPass

У меня есть сервер apache, который находится перед моим сервером Glassfish. mydomain.com переходит непосредственно к моим статическим файлам на apache, чем если вы попадаете на поддомен forum.mydomain.com, он переходит на форум webapp glassfish / по адресу 127.0.0.1:8080/forum/. Этот прокси-сервер, кажется, работает, он переводит меня в веб-приложение, но все изображения отсутствуют! Вот как я настраиваю свой виртуальный хост.

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName www.mydomain.com
    ServerAlias subdomain.mydomain.com mydomain.com
    DocumentRoot "/usr/local/apache/htdocs"

</VirtualHost>


<VirtualHost *:80>
    ServerName forum.mydomain.com
    # any logging config, etc, that you need
    ProxyPass / http://127.0.0.1:8080/forum/
    ProxyPassReverse / http://127.0.0.1:8080/forum/
</VirtualHost>

И в журнале доступа это то, что я вижу.

[15/Jan/2012:03:28:02 +0000] "GET /forums/list.page HTTP/1.1" 200 12861
[15/Jan/2012:03:28:02 +0000] "GET /forum/templates/default/images/logo.jpg HTTP/1.1" 404 1075
[15/Jan/2012:03:28:02 +0000] "GET /forum/templates/default/styles/style.css?1326582403934 HTTP/1.1" 404 1075
[15/Jan/2012:03:28:02 +0000] "GET /forum/templates/default/images/icon_mini_recentTopics.gif HTTP/1.1" 404 1075
[15/Jan/2012:03:28:02 +0000] "GET /forum/templates/default/images/icon_mini_search.gif HTTP/1.1" 404 1075
[15/Jan/2012:03:28:02 +0000] "GET /forum/templates/default/images/icon_mini_members.gif HTTP/1.1" 404 1075
[15/Jan/2012:03:28:02 +0000] "GET /forum/templates/default/styles/en_US.css?1326582403934 HTTP/1.1" 404 1075
[15/Jan/2012:03:28:02 +0000] "GET /forum/templates/default/images/icon_mini_groups.gif HTTP/1.1" 404 1075
[15/Jan/2012:03:28:02 +0000] "GET /forum/templates/default/images/folder_big.gif HTTP/1.1" 404 1075
[15/Jan/2012:03:28:02 +0000] "GET /forum/templates/default/images/icon_mini_login.gif HTTP/1.1" 404 1075
[15/Jan/2012:03:28:02 +0000] "GET /forum/templates/default/images/whosonline.gif HTTP/1.1" 404 1075
[15/Jan/2012:03:28:02 +0000] "GET /forum/templates/default/images/icon_mini_register.gif HTTP/1.1" 404 1075
[15/Jan/2012:03:28:02 +0000] "GET /forum/ping_session.jsp HTTP/1.1" 404 1075
[15/Jan/2012:03:28:02 +0000] "GET /forum/templates/default/images/folder_lock.gif HTTP/1.1" 404 1075
[15/Jan/2012:03:28:02 +0000] "GET /forum/templates/default/images/folder.gif HTTP/1.1" 404 1075
[15/Jan/2012:03:28:02 +0000] "GET /forum/templates/default/images/folder_new.gif HTTP/1.1" 404 1075

Любые идеи, почему изображения не работают?

Код для форума имеет /forum/ путь жестко задан в HTML-коде, который он отправляет клиенту, или иным образом определен где-то в его конфигурации. Если вы можете изменить его на /, Сделай так; в противном случае вы можете обойти это в своей конфигурации Apache:

<VirtualHost *:80>
    ServerName forum.mydomain.com
    ProxyPass /forum/ http://127.0.0.1:8080/forum/
    ProxyPassReverse /forum/ http://127.0.0.1:8080/forum/
    ProxyPass / http://127.0.0.1:8080/forum/
    ProxyPassReverse / http://127.0.0.1:8080/forum/
</VirtualHost>

Вы можете исправить это, разместив механизм перезаписи на виртуальном хосте.

RewriteEngine on
RewriteRule ^/forum/(images|javascripts|stylesheets)(.*) /forum/$1$2

Для получения дополнительной информации см. Вот для перезаписывающего движка

Основываясь на ответе @Mughil, я создал ниже, чтобы помочь мне использовать его для всех сайтов.

RewriteEngine on
RewriteRule ^/(.*)/(images|javascripts|stylesheets)(.*) /$1/$2$3