#! / bin / bash
# ================================================= ===
# Auteur: lijingtao
# Date de création: 2020-02-22
# La description:
# ================================================= ===
# Déterminez si la machine est installée avec nginx et ses informations de version
si [-f / usr / local / nginx / sbin / nginx]; alors
var = `/ usr / local / nginx / sbin / nginx -v`
NGX_VERSION = $ var
autre
NGX_VERSION = "Version nginx introuvable, veuillez installer d'abord"
être
si [[$ # == 0]]; alors
echo -e "\ e [33m usege {$ 0 1.16.0 / 1.12.2 $ NGX_VERSION} \ e [0m"
sortie
elif [[! "$ 1" = ~ ^ [12] \. [1-9] [0-9] \. [0-9] $]], puis
echo "usege {$ 0 1.16.0 / 1.12.2 $ NGX_VERSION}"
echo "veuillez vérifier votre saisie"
sortie
être
#Install nginx
fonction installnginx () {
useradd -s / sbin / nologin -M nginx
cd / usr / src
wget -c http://nginx.org/download/nginx-${1}.tar.gz
tar zxf nginx - $ {1} .tar.gz -C / usr / src
cd / usr / src / nginx - $ {1}
./configure --prefix = / usr / local / nginx --user = nginx --group = nginx --with-http_ssl_module --with-http_stub_status_module
make && make install
/ usr / local / nginx / sbin / nginx
/ usr / local / nginx / sbin / nginx -v
#Ajouter un fichier de configuration d'hôte virtuel
#Ici, vous devez déterminer où se trouve le fichier de configuration spécifié par ngixn actuel, prendre la valeur et la remplacer par la variable nx
sed -i '/ http {/ a \ include /usr/local/nginx/conf/\*\.conf' /usr/local/nginx/conf/nginx.conf
}
#Upgrade nginx pour déterminer que nginx est installé avant de pouvoir être exécuté
function updatenginx () {
cd / usr / src
wget -c http://nginx.org/download/nginx-${1}.tar.gz -P / usr / src
tar zxf /usr/src/nginx-${1}.tar.gz -C / usr / src
cd / usr / src / nginx - $ {1}
./configure --prefix = / usr / local / nginx --user = nginx --group = nginx --with-http_ssl_module --with-http_stub_status_module
faire
mv /usr/local/nginx/sbin/nginx{,.bak}
cp objs / nginx / usr / local / nginx / sbin /
kill -USR2 `cat / usr / local / nginx / logs / nginx.pid`
kill -QUIT `cat / usr / local / nginx / logs / nginx.pid.oldbin`
/ usr / local / nginx / sbin / nginx -s recharger
/ usr / local / nginx / sbin / nginx -V
}
# Désinstaller le nginx installé par le code source (un jugement supplémentaire peut être ajouté pour supprimer le nginx installé par yum)
fonction removenginx () {
rm -rf / usr / local / nginx /
echo -e "\ e [32m Le répertoire d'installation de nginx est supprimé \ e [0m"
rm -rf / usr / src / nginx *
echo -e "\ e [32m nginx - $ {1} .tar.gz est supprimé \ e [0m"
}
#nginxmenu
menu de fonction () {
sélectionnez x dans addhost delhost \ do love break
faire
echo "votre choix est $ x, maintenant entrez"
$ x
terminé
}
fonction delhost () {
var = `cat / usr / local / nginx / conf / servername.txt`
echo "$ {var}"
lire -p "quel virulhost vous voulez supprimer" hostdel
pour i dans $ {var}
faire
rm -rf /usr/local/nginx/conf/${i}.conf
sed -i "/ $ {i} / d" /usr/local/nginx/conf/servername.txt
terminé
}
#Modifiez le contenu du fichier de configuration principal et ajoutez le chemin d'inclusion.
fonction addhost () {
décalage 1
read -p "vous saisissez virul servername:" servername
lire -p "saisir votre port:" port
echo "serveur {
écouter $ {port};
nom_serveur $ {nom_serveur};
emplacement / {
root html;
index index.html index.htm;
}
}
"> /usr/local/nginx/conf/${servername}.conf
echo "$ {servername}" >> / usr / local / nginx / conf / servername.txt
}
#Main Menu
PS3 = "utilisation {$ 0 1.16.0 / 1.12.2 $ NGX_VERSION}"
sélectionnez i dans installnginx updatenginx removenginx addandrmhost exit
faire
# if [$ i == "exit"]; then
# sortie
# fi
cas $ i in
installnginx)
installnginx $ 1
;;
updatenginx)
si [-f / usr / local / nginx / sbin / nginx]; alors
$ i $ 1
autre
echo -e "\ e [33m nginx n'a pas été installé sur votre système, veuillez d'abord installer nginx \ e [0m"
être
;;
removenginx)
$ i $ 1
;;
addhost)
menu
;;
sortie)
sortie
esac
terminé