fix(deploy): refresh nginx gallery release config
This commit is contained in:
@@ -437,11 +437,55 @@ validate_nginx_tls() {
|
||||
fi
|
||||
}
|
||||
|
||||
disable_nginx_default_sites_enabled() {
|
||||
local moves_file="$1"
|
||||
local sites_enabled="/etc/nginx/sites-enabled"
|
||||
local sites_disabled="/etc/nginx/sites-disabled"
|
||||
local stamp source target base
|
||||
local candidates=("${sites_enabled}/default" "${sites_enabled}/default."*)
|
||||
|
||||
stamp="$(date +%Y%m%d%H%M%S)"
|
||||
for source in "${candidates[@]}"; do
|
||||
if [[ ! -e "${source}" && ! -L "${source}" ]]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
base="$(basename "${source}")"
|
||||
target="${sites_disabled}/${base}.disabled-${stamp}"
|
||||
echo "[server-provision] 禁用 Debian 默认 Nginx 站点,避免与 Genarrative server_name 冲突: ${source} -> ${target}"
|
||||
mkdir -p "${sites_disabled}"
|
||||
mv "${source}" "${target}"
|
||||
printf "%s\t%s\n" "${target}" "${source}" >>"${moves_file}"
|
||||
done
|
||||
}
|
||||
|
||||
restore_nginx_default_sites_enabled() {
|
||||
local moves_file="$1"
|
||||
local target source
|
||||
|
||||
if [[ ! -f "${moves_file}" ]]; then
|
||||
return
|
||||
fi
|
||||
|
||||
while IFS=$'\t' read -r target source || [[ -n "${target:-}" ]]; do
|
||||
if [[ -z "${target:-}" || -z "${source:-}" ]]; then
|
||||
continue
|
||||
fi
|
||||
if [[ -e "${target}" || -L "${target}" ]]; then
|
||||
mkdir -p "$(dirname "${source}")"
|
||||
if [[ ! -e "${source}" && ! -L "${source}" ]]; then
|
||||
echo "[server-provision] 恢复 Debian 默认 Nginx 站点: ${target} -> ${source}"
|
||||
mv "${target}" "${source}"
|
||||
fi
|
||||
fi
|
||||
done <"${moves_file}"
|
||||
}
|
||||
|
||||
install_nginx_config_with_rollback() {
|
||||
local config_target="/etc/nginx/conf.d/genarrative.conf"
|
||||
local snippet_target="/etc/nginx/snippets/genarrative-maintenance.conf"
|
||||
local config_source
|
||||
local rendered_config rendered_snippet config_backup snippet_backup
|
||||
local rendered_config rendered_snippet config_backup snippet_backup disabled_sites
|
||||
local had_config="false"
|
||||
local had_snippet="false"
|
||||
|
||||
@@ -459,6 +503,7 @@ install_nginx_config_with_rollback() {
|
||||
echo "+ install -m 0644 deploy/nginx/snippets/genarrative-maintenance.conf ${snippet_target}"
|
||||
|
||||
if [[ "${DRY_RUN}" == "true" ]]; then
|
||||
echo "+ disable /etc/nginx/sites-enabled/default* if present"
|
||||
echo "+ nginx -t"
|
||||
echo "+ nginx -s reload"
|
||||
return
|
||||
@@ -468,6 +513,7 @@ install_nginx_config_with_rollback() {
|
||||
rendered_snippet="$(mktemp)"
|
||||
config_backup="$(mktemp)"
|
||||
snippet_backup="$(mktemp)"
|
||||
disabled_sites="$(mktemp)"
|
||||
if [[ "${NGINX_CONFIG_MODE}" == "production-https" ]]; then
|
||||
validate_nginx_tls
|
||||
render_nginx_https_config >"${rendered_config}"
|
||||
@@ -487,6 +533,7 @@ install_nginx_config_with_rollback() {
|
||||
|
||||
install -m 0644 "${rendered_config}" "${config_target}"
|
||||
install -m 0644 "${rendered_snippet}" "${snippet_target}"
|
||||
disable_nginx_default_sites_enabled "${disabled_sites}"
|
||||
|
||||
if ! nginx -t; then
|
||||
echo "[server-provision] nginx -t 失败,恢复写入前的 Nginx 配置。" >&2
|
||||
@@ -500,13 +547,14 @@ install_nginx_config_with_rollback() {
|
||||
else
|
||||
rm -f "${snippet_target}"
|
||||
fi
|
||||
rm -f "${rendered_config}" "${rendered_snippet}" "${config_backup}" "${snippet_backup}"
|
||||
restore_nginx_default_sites_enabled "${disabled_sites}"
|
||||
rm -f "${rendered_config}" "${rendered_snippet}" "${config_backup}" "${snippet_backup}" "${disabled_sites}"
|
||||
exit 1
|
||||
fi
|
||||
echo "+ nginx -s reload"
|
||||
nginx -s reload
|
||||
|
||||
rm -f "${rendered_config}" "${rendered_snippet}" "${config_backup}" "${snippet_backup}"
|
||||
rm -f "${rendered_config}" "${rendered_snippet}" "${config_backup}" "${snippet_backup}" "${disabled_sites}"
|
||||
}
|
||||
|
||||
cleanup_placeholder_nginx_config() {
|
||||
|
||||
Reference in New Issue
Block a user