nginx自动部署脚本

#!/bin/bash

echo "=============================================版本确定=============================================="
read -p "pcre版本:" P_V
read -p "openssl版本:" O_V
read -p "zlib版本:" Z_V
read -p "nginx版本:" N_V

pcre_version=$P_V
openssl_version=$O_V
zlib_version=$Z_V
nginx_version=$N_V

#pcre_version="8.36"
#openssl_version="1.1.1"
#zlib_version="1.2.11"
#nginx_version="1.14.0"
 
echo "=====================================安装wget gcc gcc-c++========================================="
yum install -y gcc gcc-c++ wget net-tools

echo ""
echo "进入目录:/usr/local/"
cd /usr/local/
echo ""
 
echo "===========================================安装pcre=============================================="
echo "下载:pcre-"$pcre_version""
pcre_url="http://jaist.dl.sourceforge.net/project/pcre/pcre/"$pcre_version"/pcre-"$pcre_version".tar.gz"
wget $pcre_url
echo "解压:pcre-"$pcre_version".tar.gz"
tar -zxvf pcre-"$pcre_version".tar.gz
echo "进入目录:/usr/local/pcre-"$pcre_version""
cd pcre-"$pcre_version"
echo "编译安装:pcre-"$pcre_version""
./configure
make && make install
echo "返回到目录:/usr/local/"
cd /usr/local/
echo ""
 
echo "==========================================安装openssl============================================="
echo "下载:openssl-"$openssl_version""
openssl_url="http://www.openssl.org/source/openssl-"$openssl_version".tar.gz"
wget $openssl_url
echo "解压:openssl-"$openssl_version".tar.gz"
tar -zxvf openssl-"$openssl_version".tar.gz
echo "进入目录:openssl-"$openssl_version""
cd openssl-"$openssl_version"
echo "编译安装:openssl-"$openssl_version""
./config
make && make install
echo "返回到目录:/usr/local/"
cd /usr/local/
echo ""
 
echo "==============================================安装zlib============================================"
echo "下载:zlib-"$zlib_version""
zlib_url="http://zlib.net/zlib-"$zlib_version".tar.gz"
wget $zlib_url
echo "解压:zlib-"$zlib_version".tar.gz"
tar -zxvf zlib-"$zlib_version".tar.gz
echo "进入目录:zlib-"$zlib_version""
cd zlib-"$zlib_version"
echo "编译安装:zlib-"$zlib_version""
./configure
make && make install
echo "返回到目录:/usr/local/"
cd /usr/local/
echo ""
 
echo "===============================================安装nginx=========================================="
echo "下载:nginx-"$nginx_version""
nginx_url="http://nginx.org/download/nginx-"$nginx_version".tar.gz"
wget $nginx_url
echo "解压:nginx-"$nginx_version".tar.gz"
tar -zxvf nginx-"$nginx_version".tar.gz
echo "重命名nginx-"$nginx_version"为nginx"
mv nginx-"$nginx_version" nginx
echo "进入目录:nginx"
cd nginx
echo "编译安装:nginx-"$nginx_version""
./configure --user=nobody --group=nobody --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-http_ssl_module --with-pcre=/usr/local/pcre-"$pcre_version" --with-zlib=/usr/local/zlib-"$zlib_version" --with-openssl=/usr/local/openssl-"$openssl_version"
make && make install
echo "创建目录:/usr/local/nginx/logs"
mkdir logs
echo "返回到目录:/usr/local/"
cd /usr/local/
echo ""
 
echo "======================================将nginx加入环境变量==========================================="
cat >> /etc/profile << EOF
NGINX_HOME=/usr/local/nginx
PATH=$NGINX_HOME/sbin:$PATH
export PATH

EOF
source /etc/profile
eccho ""

echo"=========================================配置开机启动==============================================="
nginx_start_path=/lib/systemd/system/nginx.service
touch $nginx_start_path

cat >> $nginx_start_path << EOF
[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx reload
ExecStop=/usr/local/nginx/sbin/nginx quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

systemctl enable nginx
systemctl start nginx
systemctl status nignx

echo ""
echo "版本信息:"
echo "pcre:"$pcre_version
echo "openssl:"$openssl_version
echo "zlib:"$zlib_version
echo "nginx:"$nginx_version
echo "安装路径: /usr/local/"
echo ""

echo "===========================================软件包删除=============================================" 
echo ""
read -p "是否需要删除下载的安装(输入y/Y删除,其他不删除):" inputMsg
if [ "$inputMsg" == 'y' ] || [ "$inputMsg" == 'Y' ] 
then
    rm -rf nginx-"$nginx_version".tar.gz pcre-"$pcre_version".tar.gz openssl-"$openssl_version".tar.gz zlib-"$zlib_version".tar.gz
    echo "删除完成"
else
    echo "不删除"
fi
echo ""

echo "end"

补充部分
一般没有进行启动设置,需要进入部署的nginx进行启动
/usr/local/nginx/sbin/nginx
下面是nginx的一个启动脚本,但是还是进行上面的配置比较好

#!/bin/bash

read -p "是否需要启动nginx(输入y/Y启动,其他不启动):" startNginxMsg
if [ "$startNginxMsg" == 'y' ] || [ "$startNginxMsg" == 'Y' ] 
then
    /usr/local/nginx/sbin/nginx
    if [ $? -eq 0 ]
    then
        localIp=`hostname -I`
        echo "启动成功,请访问: http://$localIp"
    else
        echo "启动失败,请查看异常信息确定失败原因"
    fi
else
    echo "不启动"
fi
echo ""

nginx配置文件需要修改部分

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /usr/local/nginx/html;
            index  index.html index.htm;
        }
---------------------------------------------------------------
location中配置的路径要对应自己部署的nginx的html路径

我的虚拟机是刚创建出来的防火墙没有关,所有访问不通,可以关闭防火墙或者开放80端口


##关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

##开放端口
[root@centos7_9-mod conf]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success
[root@centos7_9-mod conf]# vim nginx.conf 
[root@centos7_9-mod conf]#  firewall-cmd --add-service=http --permanent
success
[root@centos7_9-mod conf]# firewall-cmd --add-port=80/tcp --permanent
Warning: ALREADY_ENABLED: 80:tcp
success
[root@centos7_9-mod conf]# firewall-cmd --reload
success
[root@centos7_9-mod conf]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens192
  sources: 
  services: dhcpv6-client http ssh
  ports: 80/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

在这里插入图片描述

标签: nginx, echo, version, zlib, openssl, pcre

相关文章推荐

添加新评论,含*的栏目为必填