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

Apache HTTPD: разрешение URL для виртуального хоста с прокси и псевдонимом каталога

Вот как выглядит моя среда:

Мне нужно сгруппировать все это под виртуальным хостом на 80-м порту следующим образом:

Вот соответствующая часть конфигурации:

<VirtualHost *:80>

    ServerName subdomain.server
    ServerAlias subdomain.server.local

    Alias /api/static/ /opt/wsgi/staticfiles/subdomain/
    <Directory /opt/wsgi/staticfiles/subdomain/ >
        Order Allow,Deny
        Allow from All
        Options -Indexes
        IndexOptions Charset=UTF-8
    </Directory>

    ProxyPass /api http://127.0.0.1:8107/api
    ProxyPassReverse /api http://127.0.0.1:8107/api

    ProxyPass / http://127.0.0.1:3002/
    ProxyPassReverse / http://127.0.0.1:3002/

</VirtualHost>

Теперь, когда я пытаюсь получить доступ к статическому ресурсу (скажем, например, /api/static/js/jquery.js) я обнаружил, что URL-адрес не разрешается сначала директивой Alias, а скорее передается в приложение WSGI (/api), что, очевидно, вызывает ошибку 404.

Изменение порядка директив не имеет никакого эффекта.

Что мне следует изменить, чтобы HTTPD работал /api/static прежде всего?

* РЕДАКТИРОВАТЬ *: я запускаю Apache HTTPD 2.2.15 в дистрибутиве CentOS 6.5

Следующая conf - это то, что вы ищете:

ProxyPass /api/static !

Он сообщает Apache не принимать во внимание этот путь при маршрутизации данных в ваше проксируемое приложение, чтобы с ним можно было иметь дело с другим типом доступа (здесь ваша директива Alias).