#!/ bin / bash
#================================================= ===
#作者:lijingtao
#作成日:2020-02-22
#説明:
#================================================= ===
#マシンがnginxとそのバージョン情報でインストールされているかどうかを確認します
if [-f / usr / local / nginx / sbin / nginx];その後
var = `/ usr / local / nginx / sbin / nginx -v`
NGX_VERSION = $ var
そうしないと
NGX_VERSION = "nginxバージョンが見つかりません。最初にインストールしてください"
されます
if [[$#== 0]];その後
echo -e "\ e [33m usege {$ 0 1.16.0 / 1.12.2 $ NGX_VERSION} \ e [0m"
出口
elif [[!"$ 1" =〜^ [12] \。[1-9] [0-9] \。[0-9] $]];その後
echo "usege {$ 0 1.16.0 / 1.12.2 $ NGX_VERSION}"
エコー "入力を確認してください"
出口
されます
#nginxをインストールする
関数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
#仮想ホスト構成ファイルを追加
#ここでは、現在のngixnで指定された構成ファイルの場所を特定し、その値を取得して変数nxで置き換える必要があります
sed -i '/ http {/ a \ include /usr/local/nginx/conf/\*\.conf' /usr/local/nginx/conf/nginx.conf
}
#nginxをアップグレードして、実行する前にnginxがインストールされていることを確認します
関数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
作る
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 reload
/ usr / local / nginx / sbin / nginx -V
}
#ソースコードによってインストールされたnginxをアンインストールします(yumによってインストールされたnginxを削除するために追加の判断を追加できます)
関数removenginx(){
rm -rf / usr / local / nginx /
echo -e "\ e [32m nginx install dir is delate \ e [0m"
rm -rf / usr / src / nginx *
echo -e "\ e [32m nginx-$ {1} .tar.gz is delate \ e [0m"
}
#nginxmenu
function menu(){
addhost delhostでxを選択します。
行う
echo "あなたの選択は$ xです、今inpupt enter"
$ x
終わった
}
関数delhost(){
var = `cat / usr / local / nginx / conf / servername.txt`
エコー "$ {var}"
read -p "delate virulhost delate" hostdel
$ {var}のi
行う
rm -rf /usr/local/nginx/conf/${i}.conf
sed -i "/ $ {i} / d" /usr/local/nginx/conf/servername.txt
終わった
}
#メイン構成ファイルの内容を変更し、インクルードパスを追加します。
関数addhost(){
シフト1
read -p "input you virul servername:" servername
read -p "input you port:"ポート
echo "サーバー{
$ {port}をリッスンします。
server_name $ {servername};
場所/ {
ルートhtml;
index index.html index.htm;
}
}
"> /usr/local/nginx/conf/${servername}.conf
echo "$ {servername}" >> / usr / local / nginx / conf / servername.txt
}
#メインメニュー
PS3 = "usage {$ 0 1.16.0 / 1.12.2 $ NGX_VERSION}"
installnginx updatenginx removenginx addandrmhost exitでiを選択します
行う
#if [$ i == "exit"];その後
# 出口
#fi
$ iケース
installnginx)
installnginx $ 1
;;
updatenginx)
if [-f / usr / local / nginx / sbin / nginx];その後
$ i $ 1
そうしないと
echo -e "\ e [33m nginxはシステムにインストールされていません。最初にnginxをインストールしてください\ e [0m"
されます
;;
removenginx)
$ i $ 1
;;
addhost)
メニュー
;;
出口)
出口
esac
終わった