Конфигурация:
-
VPS с апачем для реверспрокси и ВПН (10.0.0.1).
-
Сервер с вебней, на который надо проксировать, с адресом 10.0.0.2. Допустим, на этом сервере есть веб-приложение miniflux, к которому я хочу получать доступ извне.
Конфиг апача дефолтный для дебиана. Включены модули:
Loaded Modules:
core_module (static)
so_module (static)
watchdog_module (static)
http_module (static)
log_config_module (static)
logio_module (static)
version_module (static)
unixd_module (static)
access_compat_module (shared)
alias_module (shared)
auth_basic_module (shared)
authn_core_module (shared)
authn_file_module (shared)
authz_core_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
filter_module (shared)
headers_module (shared)
http2_module (shared)
mime_module (shared)
mpm_event_module (shared)
negotiation_module (shared)
proxy_module (shared)
proxy_html_module (shared)
proxy_http_module (shared)
proxy_http2_module (shared)
reqtimeout_module (shared)
setenvif_module (shared)
status_module (shared)
xml2enc_module (shared)
Конфиг:
<VirtualHost *:80>
ServerAdmin root@server
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Location /miniflux>
ProxyPass http://10.0.0.2:39001/
ProxyPassReverse http://10.0.0.2:39001/
ProxyPreserveHost On
</Location>
</VirtualHost>
Домен - supersite.xyz (для примера). По адресу supersite.xyz/miniflux работает прокси на сервер с miniflux на порту 39001. Браузеру отдает страницу. Но тут у меня две проблемы:
-
Страница поломана полностью. Как будто css вообще нет или что-то вроде того.
-
Переход по ссылкам, который подразумевает получение информации с поддоменов сервера с вебней, отдает 404. Допустим, я логинюсь в минифлюкс, что должно меня вести к supersite.xyz/miniflux/login, а вместо этого браузеру отдается supersite.xyz/login.
Если включить ProxyHTML для виртуального хоста, который НЯП для решения таких задачи и предназначен,
ProxyHTMLEnable On
ProxyHTMLExtended On # или без расширения
то по адресу supersite.xyz/miniflux я получаю кучу статичных нечитаемых кракозябр без урлов и прочего.
Возможно, корень у обеих проблем общий. Как починить? Мапать вручную через ProxyHTMLURLMap все поддомены? Как-то делать видимым все содержимое /var/www/html на сервере для VPS? Решение нужно такое, чтобы апач мог проксировать к разным бэкэндам (серверам), т.е. кроме url/miniflux могут быть url/gitea, url/plex и т.д., причем по разным адресам.