#!/bin/bash

#description:Nginx installation script automatically

#user:baomanji

#date:2017-03-25

#version:0.1

###############

ng_i=$(rpm -qa nginx | wc -l)

nfs_i=$(rpm -qa nfs-utils | wc -l)

ng_up='/etc/nginx/upstream'

ng_vh='/etc/nginx/vhost'

ng_d='/etc/nginx'

system_version=$(awk -F'[ .]+' '{print$4}' /etc/redhat-release)

if [ $system_version -eq 7 ];then

Ip=$(ifconfig | awk 'NR2{print$2}')

else

Ip=$(ifconfig | awk -F'[ :]+' 'NR2{print$4}')

fi

Net=$(echo $Ip | awk -F. '{print$1"."$2"."$3}')

######################################

######################################

function nfs_install() {

if [ $nfs_i -eq 0 ];then

yum -y install rpcbind nfs-utils

fi

test -d /share || mkdir /share

echo "/share $Net.0/24(rw,sync,fsid=0)" >> /etc/exports

chmod o+w /share

systemctl restart rpcbind.service

systemctl restart nfs-server.service

}

function nginx_install() {

if [ $ng_i -eq 0 ];then

if [ -f /etc/yum.repos.d/epel.repo ];then

yum -y install nginx rpcbind nfs-utils

sed -i 's#80#9000#g' /etc/nginx/nginx.conf

else

yum -y install epel-release

yum -y install nginx rpcbind nfs-utils

sed -i 's#80#9000#g' /etc/nginx/nginx.conf

fi

else

echo "nginx already install"

fi

ls -d /www/8080 || mkdir -p /www/8080
ls -d $ng_up || mkdir $ng_up
ls -d $ng_vh || mkdir $ng_vh
systemctl restart rpcbind.service
mount -t nfs nfs-server:/share /www/8080

}

function load () {

(

cat << EOF

server {

listen 80;

server_name $Ip;

location / {

proxy_pass http://pythonweb;

}

}

EOF

) > /etc/nginx/vhost/80.conf

(

cat << EOF

upstream pythonweb {

server python-web1:8080;

server python-web2:8080;

server python-web3:8080;

}

EOF

)> /etc/nginx/upstream/pythonweb.conf

}

function vhost() {

(

cat << EOF

server {

listen 8080;

server_name $Ip;

access_log /var/log/nginx/8080-log;

root /www/8080;

index index.html;

}

EOF

) > /etc/nginx/vhost/8080.conf

}

function boot_nginx() {

grep "/etc/nginx/upstream/" $ng_d/nginx.conf || sed -i '/default_type/ a\ include /etc/nginx/upstream/;' /etc/nginx/nginx.conf

grep "/etc/nginx/vhost/" $ng_d/nginx.conf || sed -i '/default_type/ a\ include /etc/nginx/vhost/;' /etc/nginx/nginx.conf

/usr/sbin/nginx -t && systemctl restart nginx.service && netstat -anpt | grep 80*

}

function options(){

while :

do

cat <<EOF

请选择========

install--安装Nginx

nfs------安装nfs

vhost----配置虚拟主机

load-----配置负载均衡

boot-----启动Nginx

exit-----退出

EOF

read -p "请输入选择:" input

case $input in

nfs)

nfs_install

;;

install)

nginx_install

;;

vhost)

vhost

;;

load)

load

;;

boot)

boot_nginx

;;

*)

exit

esac

done

}

options

简单的Nginx自动化安装啊脚本的更多相关文章

  1. 【原】shell编写一个简单的jmeter自动化压测脚本

    在公司做压力测试也挺长时间了,每次测试前环境数据准备都需要话费较长时间,所以一直在考虑能不能将整个过程实现自动化进行,于是就抽空写了一个自动化脚本,当然这个脚本目前功能十分简陋,代码也不完善,很有很多 ...

  2. CentOS自动化安装LAMP脚本

    #!/bin/bash #-- #blog:lizhenliang.blog.51cto.com ########## function ########## depend_pkg () { yum ...

  3. lnmp_auto:自动化安装lnmp环境脚本

    朋友找我在一台机器上帮忙安装下discuz.想着搭建过好几次的lnmp了,但是还没有使用过"一键安装"的自动化脚本,去网上有搜索出来,但是运行的时候发现用root运行别人的脚本还是 ...

  4. 【转】lnmp_auto:自动化安装lnmp环境脚本

    原文链接: lnmp_auto:自动化安装lnmp环境脚本  这哥们整理的这篇博文很好  转载分享 博文转载如下: 源代码在github上:https://github.com/jianfengye/ ...

  5. Nginx自动安装脚本

    添加一个install_nginx.sh脚本 版本一:(以下脚本为在线自动化安装) #!/bin/bash mkdir /soft cd /soft wget -c http://nginx.org/ ...

  6. PHP学习日记 Windows配置PHP+Nginx+自动化脚本

    Windows配置PHP+Nginx+自动化脚本 安装与配置 PHP 下载PHP:传送门 选择合适的版本下载 尽量选Thread Safe 配置PHP: 解压后在文件夹中找到php.ini-devel ...

  7. 自动化安装SQL Server+SP就那么简单

    随着业务.企业规模的日益壮大,DB的数量也在不断增多,配置一台新增DB,从服务器的参数配置,磁盘阵列规划,DB安装部署,DB参数调优等等一列步骤下来,手工操作的效率变得越来越低,因为我负责的数据库近些 ...

  8. mysql 自动备份和nginx自动安装脚本

    一.自动备份Mysql脚本: 如下脚本为mysql自动备份脚本,仅供参考,可以根据实际情况修改. #!/bin/sh #auto backup mysql #wugk #Define PATH定义变量 ...

  9. centos环境自动化批量安装软件脚本

    自动化安装jdk软件部署脚本 准备工作: 1.在执行脚本的服务器上生成免密码公钥: 安装expect命令 yum install -y expect ssh-keygen 三次回车 2.将jdk-7u ...

随机推荐

  1. threejs - uv 映射 简要

    啥也不说先上way+code+demo; https://github.com/Thinkia/threejs_/blob/master/test/test2-%20uv/readme.md 如何理解 ...

  2. analyzing problems

    If you talking to a friend or talking to a family member ,you can say:what's the metter or What's go ...

  3. SpringMvc的传递参数方式 -- url / requestMapping

    在使用spring的项目中,前台传递参数到后台是经常遇到的事, 我们必须熟练掌握一些常用的参数传递方式和注解的使用,废话少说,直接上正文. 1. @requestMapping: 类级别和方法级别的注 ...

  4. Sql Server 索引以及页和区

    索引(Index),相信大家都知道就是给表中的数据添加了一个目录,使我们可以快速检索到我们想要的数据,但这个目录是什么?SqlServer又是如何管理的?要搞明白这些,我们就要先了解sqlserver ...

  5. 从分布式一致性到共识机制(一)Paxos算法

    从分布式系统的CAP理论出发,关注分布式一致性,以及区块链的共识问题及解决. 区块链首先是一个大规模分布式系统,共识问题本质就是分布式系统的一致性问题,但是又有很大的不同.工程开发中,认为系统中存在故 ...

  6. 【数据库】数据库的锁机制,MySQL中的行级锁,表级锁,页级锁

    转载:http://www.hollischuang.com/archives/914 数据库的读现象浅析中介绍过,在并发访问情况下,可能会出现脏读.不可重复读和幻读等读现象,为了应对这些问题,主流数 ...

  7. Jmeter----基本介绍(1)

    1.Jmeter 基本介绍 简单的说,就是Jmeter能做 功能测试 和 性能测试 .它能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试,还能以多种形式展现测试结果. ...

  8. 【阿里云API】 阿里云API调用的若干说明

    阿里云API 为了监控我们使用的一些阿里云产品,需要些一些脚本,定时调用这些脚本来获得相关阿里云产品的信息. ■ 概述 调用阿里云API大约分成两类方法,一个是直接从HTTP协议开始,自己根据阿里云的 ...

  9. Nginx 开启gzip 压缩,实现基于域名的虚拟主机。

    一:gzip(GNU-ZIP)是一种压缩技术. 经过gzip压缩后页面大小可以变为原来的30%甚至更小,这样,用户浏览页面的时候速度会块得多. gzip 的压缩页面需要浏览器和服务器双方都支持,实际上 ...

  10. 设计模式 --> (4)建造者模式

    建造者(Builder)模式 建造者(Builder)模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 建造者模式包含一个抽象的Builder类,还有它的若干子类——Co ...