Вот как выглядит моя среда:
http: // server: 8107 / api
/ opt / wsgi / staticfiles / subdomain
http: // server: 3002 /
Мне нужно сгруппировать все это под виртуальным хостом на порту 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 app ( / api
), который затем, очевидно, вызывает ошибку 404.
Изменение порядка директив, похоже, не имеет никакого эффекта.
Что мне следует изменить, чтобы HTTPD работал ] / api / static
прежде всего?
* РЕДАКТИРОВАТЬ *: Я запускаю Apache HTTPD 2.2.15 в дистрибутиве CentOS 6.5
Вы ищете следующую конфигурацию:
ProxyPass /api/static !
Он сообщает Apache не принимать во внимание этот путь при маршрутизации данных в ваше проксируемое приложение, чтобы можно было иметь дело с другими типами доступ (здесь ваша директива Alias).