Nginx(1)_了解Nginx和Nginx的使用

Nginx是一款高性能的HTTP服务器及反向代理服务器,提供稳定、丰富功能和低资源消耗。适用于静态资源服务、动态资源代理及负载均衡。采用多进程模式,包括Master和多个Worker进程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Nginx概述

1、Nginx简介

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
摘自:https://baike.baidu.com/item/nginx/3817705?fr=aladdin

2、Nginx作用
Nginx主要有两个作用:

  • 静态资源Web服务器
    Nginx可以作为静态资源的服务器,比如html和文件。
  • 动态资源的代理服务器
    Nginx可以作为其他应用服务器的代理服务器,可以作为软负载,负载均衡多台服务器,对外暴露一个域名服务器。

正向代理和反向代理

  • 正向代理
    类似于客户端VPN,需要在客户端进行相关配置,才能访问服务器,实际上代理的是客户端,隐藏了客户端信息。
  • 反向代理
    代理的是服务端,隐藏了真正的服务器信息,客户端访问的是代理服务器。

Nginx进程结构

Nginx为了高可用和高可靠而设计,故采用多进程模式,如下图所示:由一个主进程和多个worker进程以及缓存进程组成。
在这里插入图片描述
Worker进程数量一般与计算机CPU个数相同,在nginx.conf配置文件中配置worker_processes auto,使用lscpu命令查看当前cpu个数,会发现启动的worker进程与cup个数相等。
在这里插入图片描述
在这里插入图片描述
特点

  • Master进程并不处理用户请求,而是由Worker Process处理用户请求。
  • 子进程是使用同一个地址空间来实现。
  • 子进程之间使用共享内存方式进行通信。
  • Cache Manager和Cache Loader主要是反向代理时做缓存使用。

使用信号量管理Master和Worker进程

1、使用信号量杀死Master进程

kill -s sigterm 206360 

也可以不加sig,下面的同上

kill -s term 206360 

说明:这里是主进程ID,如果输入worker子进程ID,worker子进程会被杀掉,但是会重新启动一个worker子进程。

2、使用信号量重新加载配置文件

kill -s sighup 209963

说明:如下图所示,重新加载配置文件后,主进程ID并没有改变,但是所有的worker子进程ID都变化了,所有的worker进程都是新进程。
在这里插入图片描述
3、接收SIGCHLD信号

说明: 主进程监控worker进程,使用SIGCHLD信号,如果worker进程宕机挂掉,会发送SIGCHLD信号给master进程。

4、接收其他信号

  • TERM,INT:杀死进程
  • QUIT:退出
  • USR1:重新打开
  • USR2:启动新的主进程,实现热升级
  • WINCH:从容关闭进程,如:kill -s winch 主或工作进程ID

5、Worker进程可以接收信号

  • TERM,INT:杀死进程
  • QUIT:退出
  • USR1:重新打开
  • WINCH:从容关闭工作进程

说明: QUIT是从容停止,TERM,INT是快速停止,kill -9是强制停止Nginx进程。

使用命令行管理Master和Worker进程

1、启动nginx命令

/nginx/sbin/nginx

说明:找到nginx目录下的sbin目录下的nginx,直接执行即可。

2、查看nginx命令

sbin/nginx -h 

如下图所示,除了查看版本号外,可以使用-s来管理nginx进程,下图框起来英文意思是:这些命令是通过向主进程发送信号来实现的。
在这里插入图片描述
3、停止nginx

sbin/nginx -s stop 

说明:stop 其实发送的是TERM信号,类似于kill -s sigterm 主进程id

4、重新启动nginx

sbin/nginx -s reload

说明:reload其实发送的是HUP信号,类似于kill -s sighup 主进程id

5、重新打开nginx

sbin/nginx -s reopen

说明:reopen其实发送的是USR1信号,类似于kill -s sigusr1 主进程id

6、退出nginx

sbin/nginx -s quit

说明:quit其实发送的是QUIT信号,类似于kill -s sigquit 主进程id

7、查看nginx版本

sbin/nginx -v

8、查看nginx版本及编译配置

sbin/nginx -V

9、测试nginx编译配置

sbin/nginx -t

10、测试nginx编译配置并dump

sbin/nginx -T
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ruiurrui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值