一键编译安装nginx-1.18.0脚本(适用centos7,ubuntu1804,debian10)

摘要:
/dev/null[-e nginx-1.18.0.tar.gz]&&/usr/lib/systemd/system/nginx.service<
#!/bin/sh
centos_page="
gcc
pcre-devel
openssl-devel
zlib-devel
make
"
ubuntu_page="
libpcre3
libpcre3-dev
openssl
libssl-dev
gcc
make
zlib1g-dev
"

COLOR="echo -e \E[1;32m"
COLOR1="echo -e \E[1;31m"
END="\E[0m"

centos_install(){
    . /etc/init.d/functions
    #判断编译安装的依赖包是否存在
    for PK in $centos_page;do
        rpm -q $PK &> /dev/null || yum -y -q install $PK    
    done
    #创建用户
    id nginx &> /dev/null || useradd -s /sbin/nologin nginx
    #下载源码包
    ${COLOR}"正在下载源码包,请稍等!"${END}
    cd /usr/local/src/
    [ -e nginx-1.18.0.tar.gz ] || wget http://nginx.org/download/nginx-1.18.0.tar.gz &> /dev/null
    [ -e nginx-1.18.0.tar.gz ] && tar xf nginx-1.18.0.tar.gz
    #创建安装目并修改权限
    [ -d /apps/nginx/run ] || mkdir -p /apps/nginx/run
    chown -R nginx.nginx /apps/nginx
    #编译
    ${COLOR}"正在编译安装,请稍等!"${END}
    cd  nginx-1.18.0/
    ./configure --prefix=/apps/nginx 
    --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 `lscpu | awk '/^CPU(s)/{print $2}'` && make install
    #修改配置文件
    [ -e /apps/nginx/conf/nginx.conf ] && sed -i 's@^#pid.*@pid /apps/nginx/run/nginx.pid;@' /apps/nginx/conf/nginx.conf
    cat > /usr/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
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/bin/kill -s TERM $MAINPID

    [Install]
    WantedBy=multi-user.target
EOF
    #命令创建
    ln -s /apps/nginx/sbin/nginx /usr/bin/nginx
    #启动服务
    systemctl daemon-reload
    systemctl enable --now nginx &> /dev/null && action "nginx安装启动完成!" || action "nginx启动失败,请检查配置文件!" false 
}

ubuntu_install(){
    #判断编译安装的依赖包是否存在
    for PK1 in $ubuntu_page;do
        dpkg -s $PK1 &> /dev/null || apt -y install $PK1
    done 
    #创建用户
    id nginx &> /dev/null || useradd -s /sbin/nologin nginx
    #下载源码包
    ${COLOR}"正在下载源码包,请稍等!"${END}
    cd /usr/local/src/
    [ -e nginx-1.18.0.tar.gz ] || wget http://nginx.org/download/nginx-1.18.0.tar.gz &> /dev/null
    [ -e nginx-1.18.0.tar.gz ] && tar xf nginx-1.18.0.tar.gz
    #创建安装目并修改权限
    [ -d /apps/nginx/run ] || mkdir -p /apps/nginx/run
    chown -R nginx.nginx /apps/nginx
    #编译
    ${COLOR}"正在编译安装,请稍等!"${END}
    cd  nginx-1.18.0/
    ./configure --prefix=/apps/nginx 
    --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 `lscpu | awk '/^CPU(s)/{print $2}'` && make install
    #修改配置文件
    [ -e /apps/nginx/conf/nginx.conf ] && sed -i 's@^#pid.*@pid /apps/nginx/run/nginx.pid;@' /apps/nginx/conf/nginx.conf
    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
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target
EOF
    #命令创建
    ln -s /apps/nginx/sbin/nginx /usr/bin/nginx
    #启动服务
    systemctl daemon-reload
    systemctl enable --now nginx &> /dev/null && ${COLOR}"nginx启动成功!"${END} || ${COLOR1}"nginx启动失败,请检查配置文件!"${END}
}

#分系统类型进行安装
#ostype1=`awk -F'"' '/^VERSION_ID/{print $2}' /etc/os-release` 
ostype2=`awk -F'"' '/^NAME/{print $2}' /etc/os-release`
if [[ $ostype2 == "CentOS Linux" ]];then
    centos_install
elif [[ $ostype2 == "Ubuntu" ]];then
    ubuntu_install
elif [[ $ostype2 == "Debian GNU/Linux" ]];then
    ubuntu_install
fi

免责声明:文章转载自《一键编译安装nginx-1.18.0脚本(适用centos7,ubuntu1804,debian10)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C# 泛型 default()方法SpringCloud微服务实战-Zuul-APIGateway(十)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

使用宝塔面板 配置nginx 访问ftp服务器下面的图片

如果 你在服务器上 运行war项目 可以在tomcat 配置访问的: tomcat 也贴出来吧! 一.tomca配置访问,需要更改配置文件server.xml ,如果找不到,自己好好找一下  一般在 tomcat/conf 这个目录下面 1. 截图:  2.  3.找到 <Host></Host> 这个标签 然后在<Host...

CentOS修改SSH端口号和禁止root用户直接登录

linux安装ssh远程登录后,为了安全起见,修改默认的22端口号并禁止root用户直接通过ssh登录。 配置方法如下: 1、使用vi编辑器打开ssh配置文件 /etc/ssh/sshd_config [root@localhost ~]# vim /etc/ssh/sshd_config 2、Port 22 这一行默认是注释的(大约在13行处),取消注释...

java加载properties配置文件的几种方法

 自由自在 废话省略... 1.普通方法 直接上我写的一共配置文件获取类: 配置文件 socket.server.address = 127.0.0.1 socket.server.port = 8511 socket.connect.timeout = 3000 package com.adao.common; import java.io.IOExc...

Nginx安装成Windows服务

  因为有项目使用Nginx来做负载均衡,但是Nginx的Windows版本是不提供安装成服务的,所以服务器重启后Nginx并不会伴随启动和恢复。网上查了下,这里记录下解决方法,防止遗忘。   第一步:下载Winsw工具,下载地址:https://github.com/kohsuke/winsw/releases,并且Copy工具到Nginx的安装目录  ...

用树莓派做3G无线路由器

第一篇博客献给我做了很长时间的课程设计,也就是题目所说的3G无线路由器。本次开发所使用的开发平台为树莓派开发板,下面进入正题..... 目标:将树莓派设置成为一个3G无线路由器,通过华为的E261拨号上网。 工具:树莓派开发板,3G无线上网卡E261,无线网卡RT5370,   步骤: 一、转换E261的模式 1、查看连接的USB设备 pi@raspber...

win下配置nginx

1.下载:http://nginx.org/en/download.html 2.在安装目录cmd: start nginx.exe 启动nginx 3.修改默认运行端口80(nginx.conf):  HTTP 数据分发 修改配置文件nginx.conf相应节点: 修改完后重启服务: nginx -s reload TCP 数据分发:  ng...