openresty一键安装部署脚本

17188ad54490b84608cfd7301aec301a.png

背景:

由于我们项目上都是安装和使用的openresty,而我们组也有一些依托openresty软件来做的应用。但是我们现在部署工作都是使用自研的一键部署平台(也是波哥主导开发的)底层用的ansible来实现的。单独开源出来的playbook不一定适用各位。所以花了点时间写了一份更通用的shell脚本以便大家使用。

结合读者对于上一篇《一键部署nginx脚本》的意见我增加了版本变量,可以在执行脚本的时候根据自行的需要带入。

openresty的一些核心简介:

openresty是一个成熟的网络平台,它集成了标准的Nginx核心,LuaJIT,许多精心编写的Lua库,许多高质量的第三方Nginx模块以及大多数外部依赖项。

  • 网站:http://openresty.org/

  • Github组织:https://github.com/openresty

  • 首席开发人员:@agentzh

  • 国内最可利用的文档:

  • http://wiki.jikexueyuan.com/project/openresty/

一键安装部署脚本如下:

#!/bin/bash


# 第一个参数为 OpenResty 的版本号
VERSION=$1
OPENRESTY_FILE="openresty-${VERSION}.tar.gz"
OPENRESTY_URL="https://openresty.org/download/${OPENRESTY_FILE}"
OPENRESTY_MD5_URL="${OPENRESTY_URL}.md5"
INSTALL_DIR="/data/openresty"


# 检查 OpenResty 文件是否存在
if [ ! -f "$OPENRESTY_FILE" ]; then
  echo "正在下载 ${OPENRESTY_URL}..."
  wget "$OPENRESTY_URL"


  # 检查下载是否成功
  if [ "$?" -ne 0 ]; then
    echo "下载 ${OPENRESTY_URL} 失败"
    exit 1
  fi
fi


# 检查 OpenResty 文件的 MD5
echo "正在获取 ${OPENRESTY_FILE} 的 MD5 值..."
wget "$OPENRESTY_MD5_URL"


# 检查获取 MD5 文件是否成功
if [ "$?" -ne 0 ]; then
  echo "获取 ${OPENRESTY_MD5_URL} 失败"
  exit 1
fi


# 提取 MD5 值并检查是否匹配
EXPECTED_MD5=$(cat "${OPENRESTY_FILE}.md5" | awk '{ print $1 }')
ACTUAL_MD5=$(md5sum "$OPENRESTY_FILE" | awk '{ print $1 }')
if [ "$EXPECTED_MD5" != "$ACTUAL_MD5" ]; then
  echo "下载的 ${OPENRESTY_FILE} 文件的 MD5 值不匹配"
  exit 1
fi


# 安装依赖
yum install -y gcc make pcre-devel openssl-devel


# 解压并编译安装 OpenResty
tar -xzvf "$OPENRESTY_FILE"
cd "openresty-$VERSION"
./configure --prefix="$INSTALL_DIR"
make
make install


# 检查安装是否成功
if [ "$?" -ne 0 ]; then
  echo "OpenResty $VERSION 安装失败"
  exit 1
fi


# 添加 OpenResty 到环境变量
echo 'export PATH=$PATH:'"$INSTALL_DIR/bin"'/' >> /etc/profile
source /etc/profile


# 创建 OpenResty 服务文件
echo "正在创建 OpenResty 服务文件..."
cat <<EOF > /etc/systemd/system/openresty.service
[Unit]
Description=OpenResty HTTP Server
After=network.target


[Service]
Type=forking
PIDFile=/run/openresty.pid
ExecStart=$INSTALL_DIR/nginx/sbin/nginx -c $INSTALL_DIR/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP \$MAINPID
ExecStop=/bin/kill -s QUIT \$MAINPID
PrivateTmp=true


[Install]
WantedBy=multi-user.target
EOF


# 启动 OpenResty 服务
systemctl daemon-reload
systemctl enable openresty
systemctl start openresty


echo "OpenResty $VERSION 已安装到 $INSTALL_DIR,并已启动 OpenResty 服务"

可以使用执行脚本后带版本号执行安装相应版本的openresty

sh install_openresty.sh 1.19.3.1

如果该文章对各位有帮助,也希望大家能予以关注分享,以便让波哥出更多更好的作品回馈大家。谢谢各位!~

小编有话说

➤推荐服务:

向下滑动查看更多

点击【IT面试精选】查看全网最权威的一线大厂面试真题及面试经验,每天更新哦!

点击【IT路边社】查看实时更新的IT新闻资讯

点击【2022互联网大事件盘点】查看2022互联网最全大事件盘点

回复【加群】群满啦!~添加波哥微信拉您进群!

点击【安全加固】获取最新安全加固脚本

点击【一键iptables脚本】获取iptables自动设置脚本

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值