使用shell脚本在centos8平台安装nginx服务

一、Nginx介绍

使用shell脚本在centos8平台安装nginx服务

文章插图
nginx web服务器部署
 Nginx(“engine x”)是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器 。和Apache一样,都是web服务器软件,因为其性能优异,所以被广大运维喜欢 。又因为nginx是一个轻量级的web服务器,相比apache来说资源消耗更低 。
延伸版本tengine(淘宝)、openresrt(章亦春)等
http://nginx.org 官网
http://www.nginx.cn/doc/index.html 中文文档
最近大事记:锤子科技在 T2 鸟巢发布会上将门票收入捐赠给了 OpenResty 开源项目OpenResty(又称:ngx_openresty) 是一个基于 NGINX 的可伸缩的 Web 平台,由中国人章亦春发起,提供了很多高质量的第三方模块二、nginx安装nginx安装脚本
#!/bin/bash#Auther: Bai Shuming#Date: 2019-10-11 15:35#Description: nginx-1.17 install from centos8-1905??#nginx源码包下载路径nginx_pkg_url=http://nginx.org/download/nginx-1.17.4.tar.gz?#nginx安装路径,安装路径为$nginx_install_doc/nginxnginx_install_doc=/usr/local?#nginx服务管理用户nginx_manage_user=www?#统计本机CPU核数cpu_count=`grep -c "flags" /proc/cpuinfo`?check () {?#安装nginx需要管理员权限 [ $UID -ne 0 ] && echo "need to be root so that" && exit 1?#安装前的依赖包解决#wget 命令#gcc 编译命令#pcre-devel URL重写功能#zlib-devel 压缩支持#make 编译命令?if ! (yum -y install wget gcc pcre-devel zlib-devel make &>/dev/null);then echo "yum install soft package fail" exit 1fi ?if ! (egrep "^www" /etc/passwd &>/dev/null);then useradd -s /sbin/nologin -r -M wwwfi }???nginx_install () {#1、下载软件包if wget $nginx_pkg_url &>/dev/null;then #2、解压软件包 echo $nginx_pkg_url|awk -F "/" '{print $5}'|xargs tar xf nginx_source_doc=`echo $nginx_pkg_url|awk -F "/" '{print $5}'|cut -d "." -f 1-3` #3、进入软件包 if [ ! -d $nginx_source_doc ];then echo "unzip `echo $nginx_pkg_url|awk -F "/" '{print $5}'` fail" exit 1 ficd $nginx_source_doc? #4、configure nginx ./configure --prefix=$nginx_install_doc/nginx --user=$nginx_manage_user --group=$nginx_manage_user 1>/dev/null [ $? -ne 0 ]&&echo "nginx configure fail"&&exit 1? #5、make nginx make -j $cpu_count 1>/dev/null [ $? -ne 0 ]&&echo "nginx make fail"&&exit 1#6、install nginx make install 1>/dev/null [ $? -ne 0 ]&&echo "nginx install fail"&&exit 1||echo "`clear`nginx install success..."? #7、delete nginx soft package cd .. rm -rf ${nginx_source_doc}*?else echo "$nginx_pkg_url download fail" exit 1fi ? }?#####callable functioncheck;nginx_install?
  • 命令启动
  • 采用systemctl管理
3.1命令启动
使用nginx命令启动
[root@node1 ~]# /usr/local/nginx/sbin/nginx 查看启动结果
[root@node1 ~]# lsof -i :80COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEnginx 42948 root 9u IPv4 90839 0t0 TCP *:http (LISTEN)nginx 42949 www 9u IPv4 90839 0t0 TCP *:http (LISTEN)通过lsof命令查看,发现nginx已经启动,并且子进程也是由www用户管理的,完美!
3.2采用systemctl管理
生成systemctl启动管理文件,该文件默认没有,需要自己建立 。
[root@node1 ~]# cat /etc/systemd/system/nginx.service[Unit]Description=nginx server daemonDocumentation=http://nginx.org/en/docs/After=network.target?[Service]Type=forkingPIDFile=/usr/local/nginx/logs/nginx.pidExecStartPre=/usr/local/nginx/sbin/nginx -tExecStart=/usr/local/nginx/sbin/nginxExecReload=/usr/local/nginx/sbin/nginx -s reloadExecStop=/bin/kill -s QUIT $MAINPIDPrivateTmp=true?[Install]WantedBy=multi-user.target让systemctl重新加载一下,这样就能发现新添加的文件了 。然后就是雷打不动的两部曲了
  • 开机启动
  • 服务管理
#重载systemctl服务[root@node1 ~]# systemctl daemon-reload?#设置nginx开机启动[root@node1 ~]# systemctl enable nginxCreated symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /etc/systemd/system/nginx.service.?#nginx服务管理 启动 关闭 状态查看 重载 重启[root@node1 ~]# systemctl start nginx[root@node1 ~]# systemctl stop nginx[root@node1 ~]# systemctl status nginx[root@node1 ~]# systemctl reload nginx[root@node1 ~]# systemctl restart nginx?同样可以采用lsof命令查看nginx的变化
【使用shell脚本在centos8平台安装nginx服务】


    推荐阅读