网站首页 > 技术教程 正文
一、一键安装nginx
前提:yum源需要配置完成、wget命令能够正常使用、设备能够上外网
脚本如下:
#!/bin/bash
#Author: Jiangfeng
#Created Time: 2019/08/03
#nginx service manage script
#定义变量
softname=nginx-1.17.2.tar.gz
soft=nginx-1.17.2
#网络下载Nginx
cd /usr/local/src
wget http://nginx.org/download/nginx-1.17.2.tar.gz
tar xf $softname
if [ $? != 0 ];then
echo "软件包下载失败,请查看wget是否安装"
exit 1
fi
#解决依赖
cd $soft
yum install -y pcre-devel zlib-devel openssl-devel gcc
if [ $? != 0 ];then
echo "无法安装依赖包,请检查yum"
exit 2
fi
#配置
./configure --prefix=/usr/local/nginx --with-http_ssl_module
if [ $? != 0 ];then
echo "$soft 配置失败"
exit 3
fi
#编译安装
make && make install
if [ $? != 0 ];then
echo "编译失败"
exit 4
cd /usr/local/src
rm -f $softname
rm -rf $soft
二、shell脚本来实现nginx的启动|关闭|重启|重新加载配置文件(reload)|查看状态
前提:nginx安装完成,并且在/usr/local目录下
脚本名字叫做”nginx”,放在/etc/init.d/目录下
使用方法:
/etc/init.d/nginx start|stop|restart|reload|status
脚本如下:
#!/bin/bash
#Author: Jiangfeng
#Created Time: 2019/08/03
#nginx service manage script
#variable
##nginx安装路径
nginx_path=/usr/local/nginx
##nginx脚本启动路径
nginxd=$nginx_path/sbin/nginx
##nginx服务启动后存放PID的文件
nginx_pid_file=$nginx_path/logs/nginx.pid
#调用shell的函数库
if [ -f /etc/init.d/functions ];then
. /etc/init.d/functions
else
echo "not find file:/etc/init.d/functions"
eixt 1
fi
#对nginx PID脚本文件进行判断
if [ -f $nginx_pid_file ];then
pid=`cat $nginx_pid_file`
nginx_process_num=`ps -ef | grep $pid | grep -v "grep" | wc -l`
fi
#函数部分
##Nginx的启动函数
start () {
##如果nginx启动则报错
if [ -f $nginx_pid_file ] && [ $nginx_process_num -ne 0 ];then
echo "Nginx服务已经启动"
else
##如果pid文件存在,但是没有进程,说明上一次非法关闭了nginx,造成pid文件没有自动删除,所以启动nginx之前先删除旧的pid文件
if [ -f $nginx_pid_file ] && [ $nginx_process_num -eq 0 ];then
rm -f $nginx_pid_file
action "nginx start" $nginxd
fi
action "nginx start" $nginxd
fi
}
##Nginx关闭函数
stop () {
##如果Nginx服务没有启动,则提示服务没有启动
if [ -f $nginx_pid_file ] && [ $nginx_process_num -eq 0 ];then
echo "Nginx服务没有启动"
exit 2
else
action "nginx stop" killall -s QUIT nginx
rm -f $nginx_pid_file
fi
}
##Nginx重启函数
restart () {
stop
sleep 1
start
if [ $? -eq 0 ];then
action "nginx 重启完成"
fi
}
##重新读取配置文件,不会更改pid
reload () {
if [ -f $nginx_pid_file ] && [ $nginx_process_num -ne 0 ];then
action "nginx reload" killall -s HUP nginx
else
echo "Nginx没有启动"
fi
}
##查看Nginx启动状态
status () {
tmp=`mktemp nginx.XXXX`
curl -s -I 127.0.0.1 1> $tmp
#curl -I 127.0.0.1 > $tmp &>/dev/null
sed -i "s/\r//" $tmp
val=`grep "HTTP" $tmp | cut -d ' ' -f3`
if [ "$val" == "OK" ];then
echo "Nginx start"
else
echo "Nginx stop"
fi
rm -f $tmp
}
#main
case $1 in
start) start;;
stop) stop;;
restart) restart;;
reload) reload;;
status) status;;
*) echo "USAGE: $0 start|stop|restart|reload|status";;
esac
猜你喜欢
- 2024-10-10 keepalived + nginx 初步实现高可用
- 2024-10-10 Nginx的高可用(nginx 高可用)
- 2024-09-12 「Centos」在nginx服务器中配置php和mysql
- 2024-09-12 Nginx参数详解(nginx 426)
- 2024-09-12 Nginx常见故障502等解决方案(nginx504报错排查流程)
- 2024-09-12 nginx的SCRIPT_NAME, PATH_INFO多了index.php问题
- 2024-09-12 nginx启动脚本(nginx的启动命令)
- 2024-09-12 nginx过滤请求关键字(nginx waf 过滤规则)
- 2024-09-12 nginx反向代理后,刷新页面无法访问,404错误,解决方法
- 2024-09-12 Nginx 备忘录 10. Keepalived 实现 Nginx 高可用
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)