安装及使用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版本优雅的退出即可。

相关推荐
三十..6 分钟前
Redis 核心原理与高可用架构实践
运维·数据库·redis
jinglong.zha2 小时前
LScript-从零基础到商业变现的AI自动化学习平台
运维·学习·自动化
Adorable老犀牛2 小时前
Telegraf:InfluxData 出品的指标采集代理
运维·telegraf
北塔软件3 小时前
北塔软件智能体平台 | 不只监控,更是AI时代的数据资产
运维·人工智能·知识库·北塔软件
AOwhisky3 小时前
学习自测与解析:MySQL第五、六、七期核心知识点详解
运维·数据库·笔记·学习·mysql·云计算
无限进步_3 小时前
从零实现一个迷你Shell——深入理解Linux命令行解释器
linux·运维·服务器·开发语言·c++·chrome
Adorable老犀牛4 小时前
nginx_exporter:Prometheus 监控 Nginx 基础指标
运维·nginx·prometheus
山里幽默的程序员4 小时前
DevOps 必备:盘点2026 年最强RESTful API 接口测试方案
运维·restful·devops·api开发·api开发工具
happymaker06264 小时前
Linux常见命令总结
linux·运维·服务器
加农炮手Jinx4 小时前
Flutter for OpenHarmony:pub_updater 命令行工具自动更新专家(DevOps 运维必备) 深度解析与鸿蒙适配指南
android·运维·网络·flutter·华为·harmonyos·devops