Исправление install.sh: stream в отдельный конфиг, правка nginx.conf через переменную
This commit is contained in:
parent
509ddeea0d
commit
83331b7475
49
install.sh
49
install.sh
|
|
@ -34,10 +34,13 @@ done
|
|||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
NGINX_SITES="/etc/nginx/sites-enabled"
|
||||
NGINX_SNIPPETS="/etc/nginx/snippets"
|
||||
NGINX_STREAM="/etc/nginx/stream-enabled"
|
||||
NGINX_CONF="/etc/nginx/nginx.conf"
|
||||
|
||||
echo "Установка nginx..."
|
||||
apt-get update
|
||||
apt-get install -y nginx
|
||||
apt-get install -y libnginx-mod-stream
|
||||
|
||||
echo "Установка certbot..."
|
||||
apt-get install -y certbot python3-certbot-nginx
|
||||
|
|
@ -70,6 +73,52 @@ for f in "$NGINX_SNIPPETS"/*.conf; do
|
|||
"$f"
|
||||
done
|
||||
|
||||
# Копируем stream-enabled (TURN/coturn — директива stream только в корне nginx.conf)
|
||||
if [ -d "$SCRIPT_DIR/stream-enabled" ]; then
|
||||
mkdir -p "$NGINX_STREAM"
|
||||
rsync -a --delete "$SCRIPT_DIR/stream-enabled/" "$NGINX_STREAM/"
|
||||
for f in "$NGINX_STREAM"/*.conf; do
|
||||
[ -f "$f" ] || continue
|
||||
sed -i \
|
||||
-e "s|__CLIENT_F7CLOUD__|$client_f7cloud|g" \
|
||||
-e "s|__IP_CLIENT_F7CLOUD__|$ip_client_f7cloud|g" \
|
||||
-e "s|__HPB_F7CLOUD__|$hpb_f7cloud|g" \
|
||||
-e "s|__IP_HPB_F7CLOUD__|$ip_hpb_f7cloud|g" \
|
||||
"$f"
|
||||
done
|
||||
# Подключить stream в nginx.conf, если ещё не подключено
|
||||
if ! grep -q 'include /etc/nginx/stream-enabled' "$NGINX_CONF"; then
|
||||
if grep -q '^stream {' "$NGINX_CONF"; then
|
||||
# Заменить существующий блок stream на include
|
||||
NGINX_CONF="$NGINX_CONF" python3 << 'PYSTREAM'
|
||||
import os
|
||||
path = os.environ.get("NGINX_CONF", "/etc/nginx/nginx.conf")
|
||||
with open(path) as f:
|
||||
content = f.read()
|
||||
start = content.find("stream {")
|
||||
if start != -1:
|
||||
depth = 0
|
||||
end = start
|
||||
for i in range(start, len(content)):
|
||||
if content[i] == "{": depth += 1
|
||||
elif content[i] == "}":
|
||||
depth -= 1
|
||||
if depth == 0: end = i; break
|
||||
replacement = "stream {\n include /etc/nginx/stream-enabled/*.conf;\n}"
|
||||
content = content[:start] + replacement + content[end+1:]
|
||||
with open(path, "w") as f:
|
||||
f.write(content)
|
||||
PYSTREAM
|
||||
else
|
||||
# Добавить блок stream в конец
|
||||
[ -n "$(tail -c1 "$NGINX_CONF")" ] && echo >> "$NGINX_CONF"
|
||||
echo 'stream {
|
||||
include /etc/nginx/stream-enabled/*.conf;
|
||||
}' >> "$NGINX_CONF"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Проверка конфигурации nginx..."
|
||||
nginx -t
|
||||
|
||||
|
|
|
|||
|
|
@ -19,17 +19,3 @@ server {
|
|||
access_log /var/log/nginx/__HPB_F7CLOUD___access.log;
|
||||
error_log /var/log/nginx/__HPB_F7CLOUD___error.log;
|
||||
}
|
||||
|
||||
stream {
|
||||
upstream coturn_backend {
|
||||
server __IP_HPB_F7CLOUD__:5349;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 5349; # TCP для TURN
|
||||
listen 5349 udp; # UDP для звонков (ВАЖНО!)
|
||||
proxy_pass coturn_backend;
|
||||
proxy_timeout 1h;
|
||||
proxy_connect_timeout 5s;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
11
stream-enabled/coturn.conf
Normal file
11
stream-enabled/coturn.conf
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
upstream coturn_backend {
|
||||
server __IP_HPB_F7CLOUD__:5349;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 5349; # TCP для TURN
|
||||
listen 5349 udp; # UDP для звонков (ВАЖНО!)
|
||||
proxy_pass coturn_backend;
|
||||
proxy_timeout 1h;
|
||||
proxy_connect_timeout 5s;
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user