From 177586138e049124a84b29eb6170be802568b637 Mon Sep 17 00:00:00 2001 From: mack-a <57424792+mack-a@users.noreply.github.com> Date: Mon, 18 Apr 2022 16:33:15 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E8=84=9A=E6=9C=AC):=20=E6=B7=BB=E5=8A=A03?= =?UTF-8?q?02=E9=87=8D=E5=AE=9A=E5=90=91=E5=A4=87=E4=BB=BD=E3=80=81?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E5=90=8E=E6=81=A2=E5=A4=8D=E5=A4=87=E4=BB=BD?= =?UTF-8?q?=E3=80=81=E6=B7=BB=E5=8A=A0302=E9=87=8D=E5=AE=9A=E5=90=91?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E6=88=90=E5=8A=9F=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install.sh | 79 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 69 insertions(+), 10 deletions(-) diff --git a/install.sh b/install.sh index f1341af..eb9aefd 100644 --- a/install.sh +++ b/install.sh @@ -1124,12 +1124,14 @@ handleNginx() { echoContent red " ---> 请手动尝试安装nginx后,再次执行脚本" exit 0 fi + echoContent green " ---> Nginx启动成功" elif [[ -n $(pgrep -f "nginx") ]] && [[ "$1" == "stop" ]]; then systemctl stop nginx sleep 0.5 if [[ -n $(pgrep -f "nginx") ]]; then pgrep -f "nginx" | xargs kill -9 fi + echoContent green " ---> Nginx关闭成功" fi } @@ -2762,8 +2764,58 @@ showAccounts() { } # 移除nginx302配置 removeNginx302() { - if grep -q "return 302 http:" /etc/nginx/conf.d/tmpfile && mv /etc/nginx/conf.d/tmpfile /etc/nginx/conf.d/alone.conf + # 查找到302那行并删除 + local line302Result= + line302Result=$(grep -n "return 302" 移除302重定向成功" + exit 0 + fi + +} + +# 检查302是否成功 +checkNginx302() { + local domain302Status= + domain302Status=$(curl -s "https://${currentHost}") + if echo "${domain302Status}" | grep -q "302"; then + local domain302Result= + domain302Result=$(curl -L -s "https://${currentHost}") + if [[ -n "${domain302Result}" ]]; then + echoContent green " ---> 302重定向设置成功" + exit 0 + fi + fi + echoContent red " ---> 302重定向设置失败,请仔细检查是否和示例相同" + backupNginxConfig restoreBackup +} + +# 备份恢复nginx文件 +backupNginxConfig() { + if [[ "$1" == "backup" ]]; then + cp /etc/nginx/conf.d/alone.conf /etc/v2ray-agent/alone_backup.conf + echoContent green " ---> nginx配置文件备份成功" + fi + + if [[ "$1" == "restoreBackup" ]] && [[ -f "/etc/v2ray-agent/alone_backup.conf" ]]; then + cp /etc/v2ray-agent/alone_backup.conf /etc/nginx/conf.d/alone.conf + echoContent green " ---> nginx配置文件恢复备份成功" + rm /etc/v2ray-agent/alone_backup.conf + fi + +} +# 添加302配置 +addNginx302() { + local line302Result= + line302Result=$(grep -n "Strict-Transport-Security" /etc/nginx/conf.d/tmpfile && mv /etc/nginx/conf.d/tmpfile /etc/nginx/conf.d/alone.conf + else + echoContent red " ---> 302添加失败" + backupNginxConfig restoreBackup fi } # 更新伪装站 @@ -2794,18 +2846,25 @@ updateNginxBlog() { read -r -p "请选择:" redirectStatus if [[ "${redirectStatus}" == "1" ]]; then - read -r -p "请输入要重定向的域名,例如 www.baidu.com:" redirectDomain + backupNginxConfig backup + read -r -p "请输入要重定向的域名,例如 https://www.baidu.com:" redirectDomain removeNginx302 - sed -i 's/add_header Strict-Transport-Security "max-age=15552000; preload" always;/add_header Strict-Transport-Security "max-age=15552000; preload" always;\nreturn 302 http:\/\/'"${redirectDomain}"';/g' "$(grep 'add_header Strict-Transport-Security "max-age=15552000; preload" always;' -rl /etc/nginx/conf.d/alone.conf)" + addNginx302 "${redirectDomain}" + handleNginx stop + handleNginx start + if [[ -z $(pgrep -f nginx) ]]; then + backupNginxConfig restoreBackup + handleNginx start + exit 0 + fi + checkNginx302 + exit 0 fi - if [[ "${redirectStatus}" == "2" ]]; then removeNginx302 + echoContent green " ---> 移除302重定向成功" + exit 0 fi - - handleNginx stop - handleNginx start - exit 0 fi if [[ "${selectInstallNginxBlogType}" =~ ^[1-9]$ ]]; then rm -rf /usr/share/nginx/* @@ -4491,7 +4550,7 @@ menu() { cd "$HOME" || exit echoContent red "\n==============================================================" echoContent green "作者:mack-a" - echoContent green "当前版本:v2.5.58" + echoContent green "当前版本:v2.5.59" echoContent green "Github:https://github.com/mack-a/v2ray-agent" echoContent green "描述:八合一共存脚本\c" showInstallStatus