Расположение сценария Apache ErrorDocument

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

  • REST api (django), работает через WSGI (mod_wsgi) на порту http: // server: 8107 / api
  • статические файлы для сайта API (у меня есть несколько страниц администрирования) в каталоге, скажем / opt / wsgi / staticfiles / subdomain
  • Веб-приложение (expressjs), работающее через pm2 / nodejs, на 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
1
задан 24 August 2016 в 18:26
1 ответ

Вы ищете следующую конфигурацию:

ProxyPass /api/static !

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

2
ответ дан 3 December 2019 в 20:35

Теги

Похожие вопросы