Прокси и переписать в WebApp - PullRequest
0 голосов
/ 10 апреля 2019

Я запускаю веб-приложение на локальном компьютере, используя gunicorn на 127.0.0.1:8000. Я хочу сделать его сервисную страницу /demo доступной на http://127.0.0.1/internal и переписать все вызовы на / demo на внутренние

Я использую Apache v2.4.

Несколько подходов с использованием mod_proxy и mod_rewrite.

# This gives me `ERR_TOO_MANY_REDIRECTS`.
    <Location /internal>
        ProxyPass        http://localhost:8000/demo
        ProxyPassReverse http://localhost:8000/demo
        RequestHeader    add X-Script-Name "/internal"
    </Location>

# This works, but I need to visit /internal/demo manually.
    <Location /internal>
        ProxyPass        http://localhost:8000
        ProxyPassReverse http://localhost:8000
        RequestHeader    add X-Script-Name "/internal"
    </Location>

Неважно, где разместить ProxyPass ...

    ProxyPass        /internal http://localhost:8000
    ProxyPassReverse /internal http://localhost:8000
    <Location /internal>
        RequestHeader    add X-Script-Name "/internal"
    </Location>

По словам разработчика, поддерживается RequestHeader add X-Script-Name.

Используя NGINX, все работает как положено:

    location /internal {
        proxy_pass http://localhost:8000;
        proxy_set_header Host $http_host;
        proxy_set_header X-Script-Name /internal;
        rewrite /internal$ /internal/demo redirect;
    }

Но добавление этого в Apache2 не помогает:

RewriteRule   /internal$ /internal/demo [R,L]
...