zoukankan      html  css  js  c++  java
  • Nginx源码编译安装脚本

    #!/bin/bash
    #
    #********************************************************************
    #Author:            Wuvikr
    #QQ:                744123155
    #Date:              2020-11-29
    #FileName           Install_Nginx1.18.sh
    #URL:               http://www.wuvikr.top
    #Description        The test script
    #Copyright (C):     2020 All rights reserved
    #********************************************************************
    PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
    export PATH
    
    CPU=`lscpu | sed -rn 's/^CPU(s)[^0-9]+([0-9]+)/1/p'`
    File=nginx-1.18.0.tar.gz
    Version=${File%.tar*}
    Dir=/apps/nginx
    
    install (){
        # 检测安装包并解压
        [ -f $File ] && tar xvf nginx-1.18.0.tar.gz || echo -e 'e[1;31m当前目录没有检测到安装包,请提前准备好安装包!e[0m'
    
        # 安装相关包
        yum -y install gcc make pcre-devel openssl-devel zlib-devel
    
        # 创建nginx用户
        useradd -r -s /sbin/nologin nginx
    
        # 切换目录
        cd $Version
    
        # 编译安装
        ./configure 
        --prefix=$Dir 
        --user=nginx 
        --group=nginx 
        --with-http_ssl_module 
        --with-http_v2_module 
        --with-http_realip_module 
        --with-http_stub_status_module 
        --with-http_gzip_static_module 
        --with-pcre --with-stream 
        --with-stream_ssl_module 
        --with-stream_realip_module
    
        make -j $CPU && make install
    
        # 创建软连接
        ln -s /apps/nginx/sbin/nginx /usr/sbin/
    
        # 创建service文件
        cat > /lib/systemd/system/nginx.service <<EOF
        [Unit]                                                                         
        Description=nginx - high performance web server
        Documentation=http://nginx.org/en/docs/
        After=network-online.target remote-fs.target nss-lookup.target
        Wants=network-online.target
    
        [Service]
        Type=forking
        PIDFile=/apps/nginx/run/nginx.pid
        ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf -g "pid $Dir/run/nginx.pid;"
        ExecReload=/bin/kill -s HUP $MAINPID
        ExecStop=/bin/kill -s TERM $MAINPID
    
        [Install]
        WantedBy=multi-user.target
    EOF
    
        # 创建pid目录
        mkdir /apps/nginx/run/
    
        # 重新加载配置并启动nginx
        systemctl daemon-reload
        systemctl enable --now nginx
    }
    
    install 
    
    echo -e "e[1;32m${Version}安装成功!e[0m"
    
    
  • 相关阅读:
    TCP之“3次握手,4次挥手”问题——实例分析
    TCP之“3次握手,4次挥手”问题
    IO
    select用法&原理详解(源码剖析)(转)
    select(),fd_set(),fd_isset()
    AF_INET与套接字SOCKET
    Socket 编程简介
    Spring 事务控制
    Spring-Profile详解
    Spring的常用使用场景
  • 原文地址:https://www.cnblogs.com/wuvikr/p/14056413.html
Copyright © 2011-2022 走看看