rproxy v1.8.2: фикс дубликата listen 443 и улучшение обработки путей

This commit is contained in:
Petro1990 2026-03-14 22:39:36 +03:00
parent 5ce99935eb
commit 519d7aea5e
1 changed files with 15 additions and 3 deletions

18
rproxy
View File

@ -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;