安装及使用nginx

文章目录


一、编译安装

前期准备

bash 复制代码
准备源码包,去官网找
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. conf:保存nginx所有的配置文件,其中nginx.conf是nginx服务器的最核心最主要的配置文件,其他的.conf则是用来配置nginx相关的功能的,例如fastcgi功能使用的是fastcgi.conf和fastcgi_params两个文件,配置文件一般都有个样板配置文件,是文件名.default结尾,使用的使用将其复制为并将default去掉即可。
  2. html目录中保存了nginx服务器的web文件,但是可以更改为其他目录保存web文件,另外还有一个50x的web文件是默认的错误页面提示页面。
  3. logs:用来保存nginx服务器的访问日志错误日志等日志,logs目录可以放在其他路径,比如/var/logs/nginx里面。
  4. sbin:保存nginx二进制启动脚本,可以接受不同的参数以实现不同的功能。

启动和停止nginx

1.系统未接管启动

绝对路径启动:/apps/nginx/sbin/nginx

停止:killall nginx

创建软连接

ln -s /apps/nginx/sbin/nginx /usr/sbin/

2.创建nginx自启动文件

bash 复制代码
[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安装

yum安装较为简单,但是需要网络。注意nginx在额外源中,需要先安装额外源。

bash 复制代码
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指定配置文件,不以文件中的配置为准。

bash 复制代码
nginx -g 'user zhangsan;'   已张三身份运行,默认是以nginx身份
nginx -g 'daemon off;'      前台运行命令

不停机升级

  1. 将旧Nginx文件换成新Nginx文件(注意备份)
  2. 向master进程发送USR2信号
  3. master进程修改pid文件名,加后缀.oldbin
  4. master进程用新Nginx文件启动新master进程,系统中将有新旧两个Nginx主进程共同提供Web服务
  5. 向旧的Nginx服务进程发送WINCH信号,使旧的Nginx worker进程平滑停止,并删除Nginx.pid.oldbin文件
  6. 向旧master进程发送QUIT信号,关闭老master
  7. 如果发现升级有问题,可以回滚向老master发送HUP,向新master发送QUIT

准备安装包

重新编译安装

不停机更新,需要安装参数一致,这时可以使用nginx -V 查看

添加完模块后,可以内核编译,编译完成后注意不要执行make install。

bash 复制代码
mv /apps/nginx/sbin/nginx   /apps/nginx/sbin/nginx.bak
#将低版本的nginx主程序改名
cp objs/nginx /apps/nginx/sbin/
#将新版本 拷入进去

这张图片里就有两个版本的nginx;有两个master。

滑动升级完成,可以将1.18版本优雅的退出即可。

相关推荐
stormsha6 分钟前
Linux中su与sudo命令的区别:权限管理的关键差异解析
linux·运维·服务器·鸿蒙系统·ux·batch命令
新加坡内哥谈技术37 分钟前
Meta计划借助AI实现广告创作全自动化
运维·人工智能·自动化
zyjyyds11344 分钟前
win11系统 Docker Desktop 突然提示Docker Engine stopped解决情况之一
运维·docker·容器
Altairr44 分钟前
Docker基础(一)
运维·docker·容器·eureka
文牧之1 小时前
PostgreSQL 的扩展pageinspect
运维·数据库·postgresql
小兔子酱#1 小时前
【Docker 01】Docker 简介
运维·docker·容器
jugt3 小时前
CentOS 7.9安装Nginx1.24.0时报 checking for LuaJIT 2.x ... not found
linux·运维·centos
hunter1274 小时前
Nginx 事件驱动理解
nginx
21号 15 小时前
9.进程间通信
linux·运维·服务器
搬码临时工10 小时前
电脑同时连接内网和外网的方法,附外网连接局域网的操作设置
运维·服务器·网络