组团学-使用shell脚本在centos8平台安装nginx服务

24 篇文章 0 订阅
8 篇文章 0 订阅
  • nginx介绍
  • nginx安装
  • nginx启动

一、nginx介绍

在这里插入图片描述
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安装脚本(资料索取群 白树明技术9群:643736601)

#!/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/nginx
nginx_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 1
fi	

if ! (egrep "^www" /etc/passwd &>/dev/null);then
	useradd -s /sbin/nologin -r -M www
fi
	
}



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
        fi	  
	
	cd $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 1
fi   

	
}

#####callable function
check;nginx_install

三、nginx启动

  • 命令启动
  • 采用systemctl管理

3.1命令启动

使用nginx命令启动

[root@node1 ~]# /usr/local/nginx/sbin/nginx 

查看启动结果

[root@node1 ~]# lsof -i :80
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   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 daemon
Documentation=http://nginx.org/en/docs/
After=network.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

让systemctl重新加载一下,这样就能发现新添加的文件了。然后就是雷打不动的两部曲了

  • 开机启动
  • 服务管理
#重载systemctl服务
[root@node1 ~]# systemctl daemon-reload

#设置nginx开机启动
[root@node1 ~]# systemctl enable nginx
Created 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的变化

树明的技术交流群

白树明技术圈4群:320990728

白树明技术圈9群:643736601

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值