Исправление 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)"
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
NGINX_SITES="/etc/nginx/sites-enabled"
|
NGINX_SITES="/etc/nginx/sites-enabled"
|
||||||
NGINX_SNIPPETS="/etc/nginx/snippets"
|
NGINX_SNIPPETS="/etc/nginx/snippets"
|
||||||
|
NGINX_STREAM="/etc/nginx/stream-enabled"
|
||||||
|
NGINX_CONF="/etc/nginx/nginx.conf"
|
||||||
|
|
||||||
echo "Установка nginx..."
|
echo "Установка nginx..."
|
||||||
apt-get update
|
apt-get update
|
||||||
apt-get install -y nginx
|
apt-get install -y nginx
|
||||||
|
apt-get install -y libnginx-mod-stream
|
||||||
|
|
||||||
echo "Установка certbot..."
|
echo "Установка certbot..."
|
||||||
apt-get install -y certbot python3-certbot-nginx
|
apt-get install -y certbot python3-certbot-nginx
|
||||||
|
|
@ -70,6 +73,52 @@ for f in "$NGINX_SNIPPETS"/*.conf; do
|
||||||
"$f"
|
"$f"
|
||||||
done
|
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..."
|
echo "Проверка конфигурации nginx..."
|
||||||
nginx -t
|
nginx -t
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,17 +19,3 @@ server {
|
||||||
access_log /var/log/nginx/__HPB_F7CLOUD___access.log;
|
access_log /var/log/nginx/__HPB_F7CLOUD___access.log;
|
||||||
error_log /var/log/nginx/__HPB_F7CLOUD___error.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