rproxy v1.8.2: фикс дубликата listen 443 и улучшение обработки путей
This commit is contained in:
parent
5ce99935eb
commit
519d7aea5e
18
rproxy
18
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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue