From 519d7aea5e2b66fbf7845913fc09581ade54da8f Mon Sep 17 00:00:00 2001 From: Petro1990 Date: Sat, 14 Mar 2026 22:39:36 +0300 Subject: [PATCH] =?UTF-8?q?rproxy=20v1.8.2:=20=D1=84=D0=B8=D0=BA=D1=81=20?= =?UTF-8?q?=D0=B4=D1=83=D0=B1=D0=BB=D0=B8=D0=BA=D0=B0=D1=82=D0=B0=20listen?= =?UTF-8?q?=20443=20=D0=B8=20=D1=83=D0=BB=D1=83=D1=87=D1=88=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA?= =?UTF-8?q?=D0=B8=20=D0=BF=D1=83=D1=82=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rproxy | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/rproxy b/rproxy index 9226f23..00ef63c 100644 --- a/rproxy +++ b/rproxy @@ -3,7 +3,7 @@ # Публикация локальных сервисов через SSH-туннели + nginx на VPS # https://github.com/l-ptrol/rProxy -VERSION="1.8.1" +VERSION="1.8.2" export PATH="/opt/bin:/opt/sbin:$PATH" CONF_DIR="/opt/etc/rproxy" CONF_FILE="$CONF_DIR/rproxy.conf" @@ -1207,6 +1207,12 @@ generate_nginx_conf() { # Гарантируем, что путь начинается с / [ "${path#/}" = "$path" ] && path="/$path" + + # Регулируем путь для корректного маппинга в proxy_pass + # Если локация /myapp, то proxy_pass http://.../ перенаправит /myapp/foo -> /foo + local location_path="$path" + # Для корня оставляем как есть, для подпутей добавляем опциональный слеш + [ "$path" != "/" ] && location_path="$path/" local stealth_host="$t_host" [ "$t_port" != "80" ] && stealth_host="$t_host:$t_port" @@ -1222,7 +1228,7 @@ generate_nginx_conf() { # Теперь эта функция генерирует ТОЛЬКО блок location # Основной конфиг сервера будет собираться отдельно cat > "$target_file" << NGINXEOF - location $path { + location $location_path { $auth_config proxy_pass http://127.0.0.1:$tunnel_port/; proxy_http_version 1.1; @@ -1265,7 +1271,13 @@ rebuild_vhost_config() { # Конфиг для домена cat > "$tmp_vhost" << EOF server { - listen $ext_port; +EOF + # Не выводим обычный listen 443, если сейчас будет выведен listen 443 ssl + if [ "$ext_port" != "443" ] || [ "$has_ssl" -eq 0 ]; then + echo " listen $ext_port;" >> "$tmp_vhost" + fi + + cat >> "$tmp_vhost" << EOF server_name "$domain"; proxy_buffering off; proxy_request_buffering off;