最好用的nginx一键安装脚本(基于centos7)

一、Nginx介绍

Nginx(“engine x”)是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。和apache一样,都是web服务器软件,因为其性能优异,所以被广大运维喜欢。又因为nginx是一个轻量级的web服务器,相比apache来说资源消耗更低。

二、为什么选择Nginx

Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性:

作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。能够支持高达 50,000 个并发连接数的响应,感谢 Nginx 为我们选择了 epoll and kqueue 作为开发模型.

作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP代理服务器 对外进行服务。Nginx 用 C 编写, 不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好的多。

作为邮件代理服务器: Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。

Nginx 安装非常的简单,配置文件 非常简洁(还能够支持perl语法),Bugs非常少的服务器: Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在 不间断服务的情况下进行软件版本的升级。

三、安装脚本

#!/bin/env bash#该脚本是源码安装nginx,运行该脚本需要用root用户#创建时间2022-1-27#定义变量echo -e "\033[32m##############################################################\033[0m"echo -e "\033[32m# 欢迎使用小汤nginx一键安装脚本!!! #\033[0m"echo -e "\033[32m#系统要求:centos7.x以上 内存2G+ 需连接外网 !!!#\033[0m"echo -e "\033[32m# 联系:@.com #\033[0m"echo -e "\033[32m##############################################################\033[0m"sleep 1echo -e "\033[32m##############################################################\033[0m"echo -e "\033[32m# 正在做安装前检查,请稍等... #\033[0m"echo -e "\033[32m##############################################################\033[0m"check () {if [ $UID -ne 0 ] ; then echo "需要root用户"exit 1figrep CentOS/etc/redhat-release &>/dev/null[ $? -ne 0 ]&& echo "你的系统不符合安装要求哦"}echo -e "\033[32m##############################################################\033[0m"echo -e "\033[32m# 检查完成,你的系统符合安装要求 #\033[0m"echo -e "\033[32m##############################################################\033[0m"sleep 1echo -e "\033[32m##############################################################\033[0m"echo -e "\033[32m# 开始收集信息,请认真填写 #\033[0m"echo -e "\033[32m##############################################################\033[0m"#nginx安装路径sleep 1read -p "请设置nginx安装目录: 是否将默认/usr/local/设置为安装目录 (y/n) [y]?" nginx_installif [ -z $nginx_install ] || [ $nginx_install = "/usr/local" ] || [ $nginx_install = "y" ] || [ $nginx_install = "Y" ];thenmkdir /usr/local-p nginx_install_doc=/usr/localelif [ $nginx_install = "n" ] || [ $nginx_install = "N" ];thenread -p "请输入你的安装目录: "nginx_install_docmkdir $nginx_install_doc-p else nginx_install_doc=$nginx_installfi#nginx管理用户while true;doread -p "nginx管理用户:" nginx_manage_user[ -z $nginx_manage_user ] && echo "用户不能为空"&&continue || echo "用户设置成功" &&breakdoneid $nginx_manage_user&>/dev/null[ $? -ne 0 ] && useradd -s /sbin/nologin -r -M $nginx_manage_user#nginx下载地址nginx_pkg_url=http://nginx.org/download/nginx-1.20.2.tar.gzecho -e "\033[32m##############################################################\033[0m"echo -e "\033[32m#信息收集完成#\033[0m"echo -e "\033[32m##############################################################\033[0m"sleep 1#关闭selinux和配置防火墙echo -e "\033[32m##############################################################\033[0m"echo -e "\033[32m#关闭防火墙和selinux #\033[0m"echo -e "\033[32m##############################################################\033[0m"setenforce 0sed -i s/SELINUX=enforcing/SELINUX=disabled/ /etc/selinux/config systemctl disable firewalld --now &>/dev/null#设置时区并同步时间echo -e "\033[32m##############################################################\033[0m"echo -e "\033[32m#设置时区并同步时间#\033[0m"echo -e "\033[32m##############################################################\033[0m"ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeyum install -y ntpdate &>/dev/nullif ! crontab -l | grep ntpdate &>/dev/null ; then(echo "* */01 * * * ntpdate cn.pool.ntp.or "; crontab -l >>$INIT_LOG) | crontabfiecho -e "\033[32m##############################################################\033[0m"echo -e "\033[32m#开始安装,请耐心等待#\033[0m"echo -e "\033[32m##############################################################\033[0m"nginx_install () {#安装依赖包echo -e "\033[32m##############################################################\033[0m"echo -e "\033[32m#正在安装装依赖包#\033[0m"echo -e "\033[32m##############################################################\033[0m"if ! (yum install -y wget make curl gcc pcre-devel zlib-devel openssl-devel &>/dev/null);thenecho "依赖包安装失败,请检查网络"exit 1fiecho -e "\033[32m##############################################################\033[0m"echo -e "\033[32m#正在下载和解压nginx安装包 #\033[0m"echo -e "\033[32m##############################################################\033[0m"#下载安装源码包wget -N$nginx_pkg_url &>/dev/null[ $? -ne 0 ]&&echo "下载失败"&& exit 1#解压源码包echo $nginx_pkg_url | awk -F "/" {print $5} | xargs tar zxf &>/dev/nullnginx_source_doc=`echo $nginx_pkg_url | awk -F "/" {print $5} | cut -d. -f1-3`cd $nginx_source_doc[ $? -ne 0 ] && echo "解压软件包失败" && eixt 1#编译和安装echo -e "\033[32m##############################################################\033[0m"echo -e "\033[32m#开始编译和安装#\033[0m"echo -e "\033[32m##############################################################\033[0m"./configure --prefix=$nginx_install_doc --user=$nginx_manage_user --group=$nginx_manage_user &>/dev/null[ $? -ne 0 ] && echo "configure失败" && eixt 1make &>/dev/nullmake install &>/dev/null[ $? -ne 0 ]&&echo "nginx install fail" && exit 1echo -e "\033[32m##############################################################\033[0m"echo -e "\033[32m#安装成功#\033[0m"echo -e "\033[32m##############################################################\033[0m"sleep 1echo -e "\033[32m##############################################################\033[0m"echo -e "\033[32m#正在启动nginx #\033[0m"echo -e "\033[32m##############################################################\033[0m"#启动nginxcd $nginx_install_doc/sbin/[ $? -ne 0 ] && echo "$nginx_install_doc/sbin/ 不存在,请检查!!!" && exit 1./nginx [ $? -ne 0 ] && echo "nginx启动失败,请检查!!!" && exit 1echo -e "\033[32m##############################################################\033[0m"echo -e "\033[32m#正在检查nginx是否正常 #\033[0m"echo -e "\033[32m##############################################################\033[0m"#验证测试curl localhost &>/dev/null[ $? -ne 0 ] && echo "nginx 服务不正常,请检查!!!" && exit 1echo -e "\033[32m##############################################################\033[0m"echo -e "\033[32m# 恭喜你nginx安装成功#\033[0m"echo -e "\033[32m# nginx版本:$nginx_source_doc #\033[0m"echo -e "\033[32m# 安装目录:$nginx_install_doc#\033[0m"echo -e "\033[32m# nginx管理用户:$nginx_manage_user#\033[0m"echo -e "\033[32m# 请打开浏览器输入本机IP来访问 #\033[0m"echo -e "\033[32m##############################################################\033[0m"}#调用函数check;nginx_install

有问题留言!!!