#!/bin/bash
# Name:Centos 6.4 安装nginx1.8.1
# Date:--
# Author:qifei@meizu.com Home=$(cd `dirname $`;pwd) #这个命令写在脚本文件里面才有用,它返回这个脚本文件放置的目录,并可以根据这个目录来定位所要运行程序的相对位置
Nginx=nginx-1.12..tar.gz
Pcre=pcre-8.33.tar.gz
Jvm_Route=nginx-upstream-jvm-route-master.zip
NGX_Cache=ngx_cache_purge-master.zip
NGX_Check=nginx_upstream_check_module-master.zip
NGX_Sticky=nginx-goodies-nginx-sticky-module-ng-08a395c66e42.zip
NGX_Upload=nginx-upload-module-2.255.zip
NGX_Openssl=openssl-1.0.1s.tar.gz
TmpSoft=/tmp/software
LogFile=/tmp/`basename $`.log #`basename $`值显示当前脚本或命令的名字,$0显示会包括当前脚本或命令的路径,`basename $`和$1相同 # ================================= System Basic setting . $Home/funcations.sh #此代码内容在其他页面
#、定义控制台输出字符颜色
#、确定安装包是否存在,以及不存在时的网络下载方法 Usage() { echo ""
echo " ==================================================================="
echo " || Deploy Nginx 1.12.1 ||"
echo " ==================================================================="
echo "" } Basic_Set() { Log "System basic setting --------------->"
if id nginx &> /dev/null;then #id nginx的执行结果为真,则nginx用户存在
GreenChar "User:nginx exist:" >&|tee -a $LogFile #会以绿色字体输出“User:nginx exist:---------------[OK]”在控制台,
else
useradd nginx -u -s /sbin/nologin -d /dev/null &>> $LogFile #如果没有nginx用户,则添加不登录方式的nginx用户,并指定用户id,-d指定登录目录
GreenChar "User:Add nginx:" >&|tee -a $LogFile
fi yum -y install libcurl-devel
yum -y groupinstall "Development tools" "Server Platform Libraries" &>> $LogFile
yum -y install gd gd-devel pcre-devel &>> $LogFile Log "System basic setting <---------------" [ $? -eq ] && GreenChar "<< Basic >> Setting-prepare:" >&|tee -a $LogFile || RedChar "<< Basic >> Setting-prepare:" >&|tee -a $LogFile
#$0为最后一次命令的执行状态,成功为0,失败一般为1,上一步无命令则返回127;如果上一步执行成功,则绿色标记“<< Basic >> Setting-prepare:-----------[OK]” ;
#否则红色标记“<< Basic >> Setting-prepare:-----------[Failed]”
} # ================================= Install Pcre Pcre_Install() { Software_Pre ${Pcre} if [ -d $TmpSoft/pcre-8.33 ];then
cd $TmpSoft/pcre-8.33
else
RedBGChar "PcreDir not exist"
exit
fi make clean all &> /dev/null Log "${Pcre} Install --------------->"
./configure &>> $LogFile
make &>> $LogFile
make install &>> $LogFile Log "${Pcre} Install <---------------" [ $? -eq ] && GreenChar "<< $Pcre >> install is ..." >&|tee -a $LogFile || RedChar "<< $Pcre >> install..." >&|tee -a $LogFile
} # ================================= ngx_cache_purge Plugin # ================================= upstream-jvm-route Patch # ================================= nginx_upstream_check Patch Nginx_Install() { Software_Pre ${Nginx}
Software_Pre ${Jvm_Route}
Software_Pre ${NGX_Cache}
Software_Pre ${NGX_Check}
Software_Pre ${NGX_Upload}
Software_Pre ${NGX_Sticky}
Software_Pre ${NGX_Openssl} [ ! -d /data/tmp/nginx ] && mkdir -p /data/tmp/nginx #目录不存在创建爱
[ ! -d /data/log/nginx ] && mkdir -p /data/log/nginx
[ ! -d /data/nginx/tmp/client ] && mkdir -p /data/nginx/tmp/client
[ ! -d /data/nginx/tmp/proxy ] && mkdir -p /data/nginx/tmp/proxy
[ ! -d /data/nginx/tmp/fcgi ] && mkdir -p /data/nginx/tmp/fcgi
[ ! -d /data/nginx/tmp/uwsgi ] && mkdir -p /data/nginx/tmp/uwsgi
[ ! -d /data/nginx/tmp/scgi ] && mkdir -p /data/nginx/tmp/scgi if [ -d $TmpSoft/nginx-1.12. ];then
cd $TmpSoft/nginx-1.12.
else
RedBGChar "NginxDir not exist"
exit
fi #对nginx打补丁
cd ${TmpSoft}/nginx-1.12.
patch -p0 < ${TmpSoft}/nginx-upstream-jvm-route-master/jvm_route.patch &>> $LogFile cd ${TmpSoft}/nginx-1.12.
patch -p0 < ${TmpSoft}/nginx_upstream_check_module-master/check_1.11.5+.patch &>> $LogFile cd ${TmpSoft}/nginx-goodies-nginx-sticky-module-ng-08a395c66e42
patch -p0 < ${TmpSoft}/nginx_upstream_check_module-master/nginx-sticky-module.patch &>> $LogFile # 开始编译nginx
cd ${TmpSoft}/nginx-1.12.
make clean all &> /dev/null Log "${Nginx} Install --------------->" ./configure \
--prefix=/data/nginx \
--error-log-path=/data/log/nginx/error.log \
--http-log-path=/data/log/nginx/access.log \
--pid-path=/data/nginx/tmp/nginx.pid \
--lock-path=/data/nginx/tmp/nginx.lock \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-openssl=${TmpSoft}/openssl-1.0.1s \
--with-http_flv_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--http-client-body-temp-path=/data/nginx/tmp/client/ \
--http-proxy-temp-path=/data/nginx/tmp/proxy/ \
--http-fastcgi-temp-path=/data/nginx/tmp/fcgi/ \
--http-uwsgi-temp-path=/data/nginx/tmp/uwsgi \
--http-scgi-temp-path=/data/nginx/tmp/scgi \
--with-pcre=${TmpSoft}/pcre-8.33 \
--with-file-aio \
--add-module=${TmpSoft}/nginx-upstream-jvm-route-master \
--add-module=${TmpSoft}/ngx_cache_purge-master \
--add-module=${TmpSoft}/nginx_upstream_check_module-master \
--add-module=${TmpSoft}/nginx-upload-module-2.255 \
--add-module=${TmpSoft}/nginx-goodies-nginx-sticky-module-ng-08a395c66e42 \
--with-http_image_filter_module &>> $LogFile make &>> $LogFile
make install &>> $LogFile Log "${Pcre} Install <---------------" [ $? -eq ] && GreenChar "<< $Nginx >> install is ..." >&|tee -a $LogFile || RedChar "NGINX-1.2.9 install is ..." >&|tee -a $LogFile
} Nginx_Conf() { Log "Nginx Config --------------->"
/bin/cp -p $Home/config/nginx/cutlog.sh /data/nginx/sbin/
/bin/cp -p $Home/config/nginx/nginx_status.sh /data/nginx/sbin/
/bin/cp -rfp $Home/config/nginx/conf /data/nginx/
chown -R nginx:nginx /data/nginx
chmod -R /data/nginx grep -i Nginx /etc/rc.local &> /dev/null && echo "nginx start config exist" &>> $LogFile || echo "/data/nginx/sbin/nginx" >> /etc/rc.local
#过滤/etc/rc.local文件中是否有nginx的启动路径,如果有则输出“nginx start config exist”到日志文件,没有则追加启动路径“/data/nginx/sbin/nginx”到/etc/rc.local IP=`ifconfig|grep -E "10\..*\..*\..*|172\..*\..*\..*" |head -n |awk -F'[: ]+' '{print $4}'`
sed -i "s@server_name.*@server_name $IP 127.0.0.1\;@" /data/nginx/conf/vhosts/zabbix.com &>> $LogFile # config crontab
n_f=$(crontab -l |grep 'find /data/log/nginx/' |wc -l) #过滤nginx的定时任务'find /data/log/nginx/'的行数
if [ "$n_f" == "" ] #如果定时任务没有关于'find /data/log/nginx/'的任务,则追加关于'find /data/log/nginx/'到/var/spool/cron/root定时任务文件
then
#echo "running"
cat >> /var/spool/cron/root << EOF
* * * find /data/log/nginx/ -mtime + -exec rm -rf {} \; &>> /var/log/cront.log
EOF
fi n_c=$(crontab -l |grep '/data/nginx/sbin/cutlog.sh' |wc -l)
if [ "$n_c" == "" ]
then
#echo "running"
cat >> /var/spool/cron/root << EOF
t
* * * /data/nginx/sbin/cutlog.sh &>> /var/log/cront.log
EOF
fi Log "Nginx Config <---------------"
[ $? -eq ] && GreenChar "NGINX-1.12.1 Config is ..." >&|tee -a $LogFile || RedChar "NGINX-1.12.1 Config is ..." >&|tee -a $LogFile
#判断nginx配置是否完成
} main() { > $LogFile
Usage >&|tee -a $LogFile
Basic_Set
Pcre_Install
Nginx_Install
Nginx_Conf } main if /data/nginx/sbin/nginx -t &> /dev/null;then
/data/nginx/sbin/nginx &>> $LogFile echo ""
echo "|-------------------------------------------------------------------|" >&|tee -a $LogFile
echo -e "Nginx-Version:\n \t`/data/nginx/sbin/nginx -V 2>&1 | sed -n '1p'`" >&|tee -a $LogFile
echo ""
echo -e "Nginx-Config:\n \t`/data/nginx/sbin/nginx -V 2>&1 | sed -n '4p'`" >&|tee -a $LogFile
echo "|-------------------------------------------------------------------|" >&|tee -a $LogFile
echo "" GreenBGChar " nginx 1.12.1 install Success complete " >&|tee -a $LogFile #RedBGChar "In the END ,please remember mount MFS" >&|tee -a $LogFile else
RedBGChar " nginx install Failed !!!" >&|tee -a $LogFile
fi

shell版的nginx安装的更多相关文章

  1. Nginx Windows版的服务安装和管理工具

    以前研究过负载均衡,最近正在项目上实施(从来没做过小项目以上级别的东西,哈),nginx挺好,不过Windows有点为难,小流量和本地不追求性能,简单易用是目标. Nginx Windows上并没有提 ...

  2. Linux系统下的Nginx安装

    nginx可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息. 正式开始前,编译环境gcc g++ 开发库之类的需要提前装好,这里默认你已经装好. ububtu平台编译环 ...

  3. Linux Nginx 安装配置

    安装前准备工作 GCC编译器-程序代码编译工具! 首先检验你的服务器环境是否安装gcc,方法如下: #gcc 如果出现:gcc: no input files 证明已经安装过gcc编译工具! 如果出现 ...

  4. Nginx安装(zhuan)

    http://www.nginx.cn/install ************************ nginx可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息. ...

  5. sentos nginx安装

    nginx可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息. 正式开始前,编译环境gcc g++ 开发库之类的需要提前装好,这里默认你已经装好. ububtu平台编译环 ...

  6. Nginx安装第二步手动下载依赖包

    nginx可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息. 正式开始前,编译环境gcc g++ 开发库之类的需要提前装好,这里默认你已经装好. ububtu平台编译环 ...

  7. Windows下将nginx安装为服务运行

    今天看到nginx这个小服务器软件正式版更新到了1.4.2,想玩下它.这个服务器软件虽小,但功能强大,是开源软件,有着良好的性能,被很多个人.企业,甚至大型企业所使用! 由于是在Windows下,所以 ...

  8. Nginx安装学习使用详细记录

    选择Nginx的优点:Nginx 可以在大多数 Unix like OS 上编译运行,并有 Windows 移植版. Nginx 的1.4.0稳定版已经于2013年4月24日发布,一般情况下,对于新建 ...

  9. Nginx安装部署

    Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev ...

随机推荐

  1. Axure 矩形交互样式与单选按钮组设置

    矩形交互样式: 场景:当点击昵称的时候,密码栏会显示红框,当点击密码的时候,昵称会显示红框 补充:昵称栏和密码栏的组成其实是一个矩形框和一个文本框,这样才可以设置出场景所示的样式 这里的设置只是简单的 ...

  2. final model for bioinformatics

    final model for bioinformatics 模拟真实的生物系统,从有机分子到细胞,到组织,到器官,到个体,到家系,到群体. 正确的设计结构,可拓展性,可塑性. 良好的可视化. 面向对 ...

  3. 持续集成CI/CD

    Gitlab+kubernetes+docker+jenkins+harbor搭建持续交付系统 http://blog.chenmiao.cf/2016/12/28/gitlab+kubernetes ...

  4. 【ERROR】ERROR: transport error 202: bind failed: Cannot assign requested address

    异常信息: ERROR: transport error : bind failed: Cannot assign requested address ERROR: JDWP Transport dt ...

  5. 《c++ concurrency in action》读书笔记1

    1. 什么是并发通俗来说,并发指两个或者多个独立的事件(活动)同时发生.比如,一边走路一边说话,两个手同时做不同的事情.计算机系统的并发是指一个系统并行处理多个独立的事件(活动), 而不是按顺序或者一 ...

  6. MATLAB 曲线形状,粗细,颜色使用大全

    通过改变R-G-B 的值改变线条的颜色: $$\tt\Large plot(x,y,'Color',[R~~G~~B]);$$ 通过改变$c\in[1,+\infty)$的值改变线条的粗细 $$\tt ...

  7. 博客编辑器Open Live Writer的安装以及配置

    下载安装包 访问官网  http://openlivewriter.org/ 或者微软商店  https://www.microsoft.com/en-us/p/open-live-writer/9n ...

  8. Oracle通用维、父子维相互转换

    所谓通用维即维度层级1.2.3均作为字段展示为列,父子维即维度id+父级维度+维度层级字段 通用维 lvl_id1 lvl_name1 lvl_id2 lvl_name2 lvl_id3 lvl_na ...

  9. AngelToken钱包——值得投资与存币的钱包

    Angeltoken有多好? Angeltoken到底值不值得我们投资? 简而言之 Angeltoken结合了:钱包+机器人,钱包+币币交易,钱包+宠物,钱包+结算代币等等. 它颠覆传统的运营和赚钱模 ...

  10. c语言中,在结构体中如何将void *转存为具体需要的数据类型

    1. 只需要将该void *类型成员,强制转换为具体的数据类型指针即可.需要注意的是,该强制转换是有风险的,转换时,必须确定void*指向内存实际数据为目标结构体格式,否则可能会出现内存越界访问,从而 ...