shellscript-12-一键部署nginx
  UReG4QD8JsyE 2023年11月26日 18 0

shellscript-12-一键部署nginx

脚本内容

#!/bin/bash

# author: yolo
# 一键部署nginx

# 检测每一步执行是否正常,出错就返回 执行到的位置
ch_ok()
{
	if [ $? -ne 0 ]
	then
		echo "$1 error"
		exit 1
	fi
}

download_ng()
{
	cd /usr/local/src
	if [ -f nginx-1.20.1.tar.gz ]
	then 
		echo "当前目录已存在nginx-1.20.1.tar.gz"
		echo “检测md5”
		# 文件下载后执行 md5sum 文件名称生成的 检测文件完整性
		ng_md5=`md5sum nginx-1.20.1.tar.gz|awk '{print $1}'`
		if [ ${ng_md5} == '8ca6edd5076bdfad30a69c9c9b41cc68' ] 
		then
			return 0
		else
			sudo /bin/mv nginx-1.20.1.tar.gz nginx-1.20.1.tar.gz.old
		fi
	fi
	sudo curl -O http://nginx.org/download/nginx-1.20.1.tar.gz
	ch_ok "下载nginx"
}

install_ng()
{
	cd /usr/local/src
	echo "解压nginx"
	sudo tar -zxvf nginx-1.20.1.tar.gz
	ch_ok "解压nginix"
	cd nginx-1.20.1
	
	echo "安装依赖"
	if which yum >/dev/null 2>&1
	then
		# redhat
		for pkg in libaio ncurses gcc gcc-c++ cmake ncurses-devel wget pcre-devel zlib-devel openssl openssl-devel
		do
			if ! rpm -q $pkg >/dev/null 2>&1
			then
				sudo yum install -y $pkg
				ch_ok "yum 安装$pkg"
			else
				echo "$pkg已经安装"
			fi
		done
	fi
	
	if which apt >/dev/null 2>&1
        then
                # ubuntu
                for pkg in libaio ncurses gcc gcc-c++ cmake ncurses-devel wget pcre-devel zlib-devel openssl openssl-devel
                do
                        if ! dpkg -l $pkg >/dev/null 2>&1
                        then
                                sudo apt install -y $pkg
                                ch_ok "apt 安装$pkg"
                        else
                                echo "$pkg已经安装"
			fi
		done
	fi
	echo "configure nginx"
	sudo ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-stream --with-stream_ssl_preread_module --with-stream_ssl_module
	ch_ok "configure nginx"
	echo "编译和安装"
	sudo make && make install
	ch_ok "编译安装完成"

	echo "编辑systemd服务管理"
	cat > /tmp/nginx.service <<EOF
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID

[Install]
WantedBy=multi-user.target
EOF

	sudo /bin/mv /tmp/nginx.service /lib/systemd/system/nginx.service
	ch_ok "编辑nginx.service完成"
	
	echo "加载服务"
	sudo systemctl unmask nginx.service
	sudo systemctl daemon-reload
	sudo systemctl enable nginx
	echo "启动nginx"
	sudo systemctl start nginx
	ch_ok "启动nginx完成"
}
download_ng
install_ng
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月26日 0

暂无评论

推荐阅读
  P3nxyT0LRuwj   2023年11月28日   15   0   0 nginxhtmlWeb
  jnZtF7Co41Wg   2023年12月11日   14   0   0 nginx客户端服务端
  jnZtF7Co41Wg   2023年11月28日   15   0   0 nginx文件名linux命令
  stLBpDewCLT1   2023年12月08日   21   0   0 nginx
  jnZtF7Co41Wg   2023年12月10日   16   0   0 nginx客户端服务端NFS
  eHipUjOuzYYH   2023年12月06日   13   0   0 nginxHTTP
  eHipUjOuzYYH   2023年12月06日   16   0   0 nginx加载IPV6
UReG4QD8JsyE