加入参数校验
This commit is contained in:
@@ -1,5 +1,48 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 定义必需的环境变量
|
||||
declare -A required_vars=(
|
||||
["NGINX_SERVER_NAME"]="Nginx服务器域名"
|
||||
["NGINX_SSL_CERT"]="SSL证书路径"
|
||||
["NGINX_SSL_KEY"]="SSL密钥路径"
|
||||
["NGINX_FRONTEND_ROOT"]="前端构建文件路径"
|
||||
["BACKEND_PORT"]="后端服务端口"
|
||||
)
|
||||
|
||||
# 验证环境变量
|
||||
validate_env_vars() {
|
||||
local missing_vars=()
|
||||
local env_file=$1
|
||||
|
||||
echo "正在验证 Nginx 环境变量配置..."
|
||||
|
||||
# 检查环境变量文件是否存在
|
||||
if [ ! -f "$env_file" ]; then
|
||||
echo "错误: 找不到环境配置文件 $env_file"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 加载环境变量
|
||||
source "$env_file"
|
||||
|
||||
# 检查必需变量
|
||||
for var in "${!required_vars[@]}"; do
|
||||
if [ -z "${!var}" ]; then
|
||||
missing_vars+=("$var (${required_vars[$var]})")
|
||||
fi
|
||||
done
|
||||
|
||||
# 如果有缺失的变量,显示错误信息并退出
|
||||
if [ ${#missing_vars[@]} -ne 0 ]; then
|
||||
echo "错误: 以下必需的 Nginx 变量未设置:"
|
||||
printf '%s\n' "${missing_vars[@]}" | sed 's/^/ - /'
|
||||
echo "请在 $env_file 中设置这些变量后重试。"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Nginx 生产环境变量验证通过!"
|
||||
}
|
||||
|
||||
# 检查参数
|
||||
if [ -z "$1" ]; then
|
||||
echo "Usage: $0 <env_file_path>"
|
||||
@@ -16,6 +59,9 @@ if [ ! -f "$ENV_FILE" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 验证环境变量
|
||||
validate_env_vars "$1"
|
||||
|
||||
# 读取环境变量
|
||||
source "$ENV_FILE"
|
||||
|
||||
@@ -50,18 +96,18 @@ configure_nginx() {
|
||||
done < "$NGINX_TEMPLATE" > "$TEMP_NGINX"
|
||||
|
||||
# 复制配置文件到目标位置
|
||||
cp "$TEMP_NGINX" /etc/nginx/sites-available/
|
||||
# cp "$TEMP_NGINX" default
|
||||
# cp "$TEMP_NGINX" /etc/nginx/sites-available/
|
||||
cp "$TEMP_NGINX" default
|
||||
rm "$TEMP_NGINX"
|
||||
}
|
||||
|
||||
# 执行配置
|
||||
configure_nginx
|
||||
|
||||
# # 测试Nginx配置
|
||||
cp nginx.conf /etc/nginx
|
||||
nginx -t
|
||||
# # # 测试Nginx配置
|
||||
# cp nginx.conf /etc/nginx
|
||||
# nginx -t
|
||||
|
||||
/etc/init.d/nginx restart
|
||||
# /etc/init.d/nginx restart
|
||||
|
||||
echo "Nginx configuration completed."
|
||||
Reference in New Issue
Block a user