rproxy v1.8.6: экспериментальный sub_filter для коррекции путей в подпутях
This commit is contained in:
parent
0b99a95dad
commit
c49f9ad7e0
23
rproxy
23
rproxy
|
|
@ -3,7 +3,7 @@
|
||||||
# Публикация локальных сервисов через SSH-туннели + nginx на VPS
|
# Публикация локальных сервисов через SSH-туннели + nginx на VPS
|
||||||
# https://github.com/l-ptrol/rProxy
|
# https://github.com/l-ptrol/rProxy
|
||||||
|
|
||||||
VERSION="1.8.4"
|
VERSION="1.8.6"
|
||||||
export PATH="/opt/bin:/opt/sbin:$PATH"
|
export PATH="/opt/bin:/opt/sbin:$PATH"
|
||||||
CONF_DIR="/opt/etc/rproxy"
|
CONF_DIR="/opt/etc/rproxy"
|
||||||
CONF_FILE="$CONF_DIR/rproxy.conf"
|
CONF_FILE="$CONF_DIR/rproxy.conf"
|
||||||
|
|
@ -497,6 +497,11 @@ do_add_interactive() {
|
||||||
path="${REPLY:-/}"
|
path="${REPLY:-/}"
|
||||||
[ "${path#/}" = "$path" ] && path="/$path"
|
[ "${path#/}" = "$path" ] && path="/$path"
|
||||||
|
|
||||||
|
if [ "$path" != "/" ]; then
|
||||||
|
printf " ${YELLOW}ℹ СОВЕТ: Сложные интерфейсы (как у роутеров) могут плохо работать в подпутях.${NC}\n"
|
||||||
|
printf " ${YELLOW} Для стабильного UI лучше использовать поддомен (напр. app.domain.com) с путем /${NC}\n"
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$use_ssl" = "yes" ] && [ -z "$CERTBOT_EMAIL" ]; then
|
if [ "$use_ssl" = "yes" ] && [ -z "$CERTBOT_EMAIL" ]; then
|
||||||
prompt "Введите Email для Certbot: "
|
prompt "Введите Email для Certbot: "
|
||||||
CERTBOT_EMAIL="$REPLY"
|
CERTBOT_EMAIL="$REPLY"
|
||||||
|
|
@ -522,6 +527,11 @@ do_add_interactive() {
|
||||||
[ "${path#/}" = "$path" ] && path="/$path"
|
[ "${path#/}" = "$path" ] && path="/$path"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "$path" != "/" ]; then
|
||||||
|
printf " ${YELLOW}ℹ СОВЕТ: Сложные интерфейсы (как у роутеров) могут плохо работать в подпутях.${NC}\n"
|
||||||
|
printf " ${YELLOW} Для стабильного UI лучше использовать поддомен (напр. app.domain.com) с путем /${NC}\n"
|
||||||
|
fi
|
||||||
|
|
||||||
# Если VPS не определен автоматически — выбираем вручную
|
# Если VPS не определен автоматически — выбираем вручную
|
||||||
if [ -z "$vps_id" ]; then
|
if [ -z "$vps_id" ]; then
|
||||||
select_vps_interactive
|
select_vps_interactive
|
||||||
|
|
@ -1246,6 +1256,17 @@ generate_nginx_conf() {
|
||||||
proxy_cookie_path / "$path";
|
proxy_cookie_path / "$path";
|
||||||
# Редиректы: если приложение шлет Location: /login, Nginx заменит на Location: $path/login
|
# Редиректы: если приложение шлет Location: /login, Nginx заменит на Location: $path/login
|
||||||
proxy_redirect / "$path";
|
proxy_redirect / "$path";
|
||||||
|
|
||||||
|
# Экспериментальная замена ссылок в HTML/JS для работы в подпутях (v1.8.6)
|
||||||
|
if [ "$path" != "/" ]; then
|
||||||
|
# Убираем сжатие от бэкенда, чтобы Nginx мог видеть текст
|
||||||
|
proxy_set_header Accept-Encoding "";
|
||||||
|
sub_filter_once off;
|
||||||
|
sub_filter_types text/html text/css application/javascript application/json;
|
||||||
|
# Заменяем ссылки начинающиеся с / на /путь/
|
||||||
|
sub_filter '="/' '="$path/';
|
||||||
|
sub_filter '=\"/' '=\"$path/';
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
NGINXEOF
|
NGINXEOF
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue