准备源码包,去官网找
https://nginx.org/en/download.html
yum -y install gcc pcre-devel openssl-devel zlib-devel openssl openssl-devel#安装依赖环境
useradd -M -s /sbin/nologin nginx#新建nginx用户便于管理
./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
添加需要的模块
解释四个文件的作用
1.系统未接管启动
绝对路径启动:/apps/nginx/sbin/nginx
停止:killall nginx
创建软连接
ln -s /apps/nginx/sbin/nginx /usr/sbin/
2.创建nginx自启动文件
[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/logs/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
LimitNOFILE=100000
[Install]
WantedBy=multi-user.target
yum安装较为简单,但是需要网络。注意nginx在额外源中,需要先安装额外源。
yum install -y epel-release
yum install nginx -y
命令 | 含义 |
---|---|
-v | 显示版本信息然后退出 |
-V | 显示版本和配置选项,然后退出 |
-t | 测试配置然后退出 |
-T | 测试配置,输出到文件并退出 |
-q | 在配置测试期间抑制非错误消息 |
-s | 向主进程发送信号:停止(stop),退出(quit),重新打开(reopen),重新加载(reload) |
-p 路径 | 设置路径 |
-e 文件名 | 设置错误日志文件 |
-c 文件名 | 设置配置文件 |
-g | 指定配置 |
命令 | 含义 |
---|---|
stop | 立即关闭nginx |
quit | 优雅退出 不影响业务的状态下退出 |
reload | 重新加载 |
SIGUSR1 | 重新分割日志 |
SIGUSR2 | 运行中升级 |
分割日志
重新分割日志。未发信号前,还是存在原先的日志文件里面。
向主进程发布信号后,即可重新载入日志文件。
指定配置
nginx -g指定配置文件,不以文件中的配置为准。
nginx -g 'user zhangsan;' 已张三身份运行,默认是以nginx身份
nginx -g 'daemon off;' 前台运行命令
准备安装包
重新编译安装
不停机更新,需要安装参数一致,这时可以使用nginx -V 查看
添加完模块后,可以内核编译,编译完成后注意不要执行make install。
mv /apps/nginx/sbin/nginx /apps/nginx/sbin/nginx.bak
#将低版本的nginx主程序改名
cp objs/nginx /apps/nginx/sbin/
#将新版本 拷入进去
这张图片里就有两个版本的nginx;有两个master。
滑动升级完成,可以将1.18版本优雅的退出即可。