目录
一. nginx介绍
1. nginx简介
2. nginx和apache区别
二. nginx编译安装
1. 下载解压nginx安装包,并安装nginx依赖包
2. 创建运行用户和组
3. 编译安装并补全
4. 效验结果
三. 平滑升级nginx
1. 下载解压nginx安装包
2. 编译安装
3. 替换二进制文件
4. 升级nginx
四. systemctl管理nginx
1. 通过脚本文件管理
2. 配置管理文件管理
一. nginx介绍
1. nginx简介
Nginx是一个轻量级/高性能的反向代理Web服务器,特点是占用内存少,并发能力强,能实现非常高效的反向代理、负载平衡,可以处理5万并发连接数。
2. nginx和apache区别
apache:同步多进程模型,基于子进程,单个线程处理单个请求
nginx:处理请求是异步非阻塞的,所有请求都由一个线程处理,在高并发下能保持低资源,低消耗高性能,相比于apache占用更少的内存和资源
二. nginx编译安装
1. 下载解压nginx安装包,并安装nginx依赖包
https://nginx.org/en/download.html
#官网下载nginx软件包
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
#安装nginx依赖包
2. 创建运行用户和组
Nginx 服务程序默认以 nobody 身份运行
建议为其创建专门的用户账号,以便更准确地控制其访问权限
3. 编译安装并补全
cd nginx-1.24.0/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
make && make install
#让系统识别nginx的操作命令
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
#指定nginx的安装路径
--prefix=/usr/local/nginx
#指定用户名
--user=nginx
#指定组名
--group=nginx
#启用 http_stub_status_module 模块以支持状态统计
--with-http_stub_status_module
4. 效验结果
三. 平滑升级nginx
1. 下载解压nginx安装包
tar xf nginx-1.25.3.tar.gz
cd nginx-1.25.3/
2. 编译安装
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
make
3. 替换二进制文件
#备份旧版本ngin
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old
#把新版本文件转过去
cp objs/nginx /usr/local/nginx/sbin/nginx
4. 升级nginx
#要保证当前 nginx 进程是通过 /usr/local/nginx/sbin/nginx 启动的
#而不是通过查找环境变量中那个 nginx 命令启动的
killall nginx
/usr/local/nginx/sbin/nginx
#编译升级
make upgrade
四. systemctl管理nginx
1. 通过脚本文件管理
vim /etc/init.d/nginx
#!/bin/bash
#chkconfig: - 99 20
#description:Nginx Service Control Script
COM="/usr/local/nginx/sbin/nginx"
PID="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$COM
;;
stop)
kill -s QUIT $(cat $PID)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PID)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0
chmod +x /etc/init.d/nginx
#添加为系统服务
chkconfig --add nginx
2. 配置管理文件管理
vim /lib/systemd/system/nginx.service
[Unit]
#服务的说明
Description=nginx
#描述服务
After=network.target
#依赖,当依赖的服务启动之后再启动自定义的服务
[Service]
#服务运行参数的设置
Type=forking
#后台运行的形式,使用此启动类型应同时指定PIDFile=,以便systemd能够跟踪服务的主进程
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
#服务的具体运行命令
ExecReload=/bin/kill -s HUP $MAINPID
#重启命令
ExecStop=/bin/kill -s QUIT $MAINPID
#停止命令
PrivateTmp=true
#给服务分配独立的临时空间
[Install]
#服务安装的相关设置,可设置为多用户
WantedBy=multi-user.target
chmod 754 /lib/systemd/system/nginx.service