深入探究 Nginx:安装、设置及优化指南

[复制链接]
发表于 2026-2-4 22:48:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
一、Nginx 概述及编译安装

1、概述

Nginx是一个高性能的开源HTTP和反向署理服务器,同时也是一个IMAP/POP3邮件署理服务器。它最初由Igor Sysoev于2002年开发,并于2004年初次发布。Nginx以其高并发性、低资源斲丧和机动的设置本领而受到广泛关注,实用于大流量网站和高并发处置惩罚场景。
Nginx的重要特点:

      
  • 高性能:Nginx的变乱驱动架构使其可以大概处置惩罚大量并发毗连,而不必要为每个毗连创建一个新的线程或进程。
      
  • 反向署理:Nginx可以作为反向署理服务器,将客户端哀求分发到后端服务器,进步体系的可扩展性和安全性。
      
  • 负载均衡:Nginx可以大概将哀求分配到多个后端服务器举行负载均衡,从而优化资源使用和相应时间。
      
  • 静态内容服务:Nginx非常善于提供静态文件服务,如图像、CSS和JavaScript文件,能以极高的性能相应静态内容哀求。
      
  • 动态内容署理:固然Nginx本身不处置惩罚动态内容,但它可以与FastCGI、uWSGI等模块共同,用于处置惩罚PHP、Python等动态哀求。
      
  • 支持多种协议:不光支持HTTP和HTTPS,还支持SMTP、POP3和IMAP等邮件协议。
      
  • 模块化架构:Nginx具有良好的模块体系,用户可以根据必要添加差别的功能模块,如gzip压缩、SSL支持、HTTP/2等。
      
  • 简朴的设置文件:Nginx的设置文件结构清晰、易于明白,用户可以方便地设置服务器举动和干系参数。
      
  • 高可用性和可扩展性:Nginx可以与其他软件(如Keepalived、HAProxy等)联合,实现高可用性和横向扩展

2、Nginx 进程结构

2.1、web哀求处置惩罚机制


      
  • 多进程方式:
服务器每吸取到一个客户端哀求就有服务器的主进程天生一个子进程相应客户端,直 到用户关闭毗连,如许的上风是处置惩罚速率快,子进程之间相互独立,但是假如访问过大会导致服务 器资源耗尽而无法提供哀求

      
  • 多线程方式:
与多进程方式雷同,但是每收到一个客户端哀求会有服务进程派生出一个线程和此客 户端举行交互,一个线程的开销远远小于一个进程,因此多线程方式在很大程度减轻了web服务器 对体系资源的要求,但是多线程也有本身的缺点,即当多个线程位于同一个进程内工作的时间,可 以相互访问同样的内存地点空间,以是他们相互影响,一旦主进程挂掉则全部子线程都不能工作 了,IIS服务器使用了多线程的方式,必要隔断一段时间就重启一次才气稳固。
Nginx是多进程构造模子,而且是一个由Master主进程和Worker工作进程构成。主进程重要负责设置管理、进程监控监控和信号处置惩罚,并不会直接处置惩罚网络哀求。工作进程实际实行处置惩罚哀求的任务,具备高并发和高服从,可以大概独立工作,为用户提供相应。
2.2、主进程(Master Process)


      
  • 管理进程:主进程负责管理工作进程的生命周期,包罗启动、克制和重启工作进程。
      
  • 设置管理:在启动时,主进程会读取Nginx的设置文件,并根据设置天生和管理工作进程。
      
  • 信号处置惩罚:主进程吸取来自利用体系的信号(如克制、重启、重新加载设置等),并将这些信号转发给相应的工作进程。
      
  • 负载均衡和监控监控:固然主进程不直接处置惩罚客户端哀求,但它可以监控监控工作进程的状态并在须要时对其举行调解。
      
  • 中断工作进程:在举行平滑重启或重新加载设置时,主进程会先启动新的工作进程,然后再把现有的工作进程优雅地克制,以包管零停机。

2.3、工作进程(Worker Process)


      
  • 处置惩罚哀求:工作进程负责实际处置惩罚客户端的哀求,包罗吸取哀求、发送相应以及完成数据的处置惩罚。
      
  • 并发处置惩罚:每个工作进程可以处置惩罚多个哀求,Nginx的变乱驱动架构使得它具有非常高的并发处置惩罚本领。
      
  • 使用共享内存:工作进程可以通过共享内存举行数据共享,比方会话信息、缓存等,有助于提升性能。
      
  • 变乱驱动:工作进程使用非壅闭I/O和异步变乱处置惩罚机制,有效进步了处置惩罚服从和相应速率。
      
  • 独立运行:工作进程在主进程的控制下独立运行,可以以多进程方式处置惩罚哀求,进步资源的使用率和稳固性

3、Nginx 编译安装

  1. tar zxf nginx-1.24.0.tar.gz
复制代码

  1. dnf install gcc pcre-devel zlib-devel openssl-devel -y
复制代码

关闭编译时的调试信息(关闭debug功能)
关闭 Nginx 的调试功能可以资助进步应用步调的稳固性和安全性,同时镌汰体系资源的斲丧,因此在生产环境中通常发起将其关闭。
  1. vim auto/cc/gcc
复制代码

./configure:这是运行 Nginx 设置脚本的下令,它会查抄你的体系环境并天生 Makefile 文件,资助你编译 Nginx。
  1. ./configure --prefix=/usr/local/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
复制代码


make编译源代码并天生可实行文件
make install将编译好的步调、库和其他须要文件安装到体系的尺度目次中
  1. make && make install
复制代码

为 Nginx 创建一个专用的、没有登录权限的用户
  1. useradd -s /sbin/nologin -M nginx
复制代码

启动 Nginx
  1. /usr/local/nginx/sbin/nginx
复制代码


把nginx软件的下令实行路径添加到环境变量中
  1. vim ~/.bash_profile
复制代码

更新环境变量和设置
  1. source ~/.bash_profile
复制代码
注:怎么删编译的文件
  1. rm -fr /usr/local/nginx/
  2. make clean
复制代码


4、平滑升级及版本回滚

4.1、版本升级

  1. ​wget https://nginx.org/download/nginx-1.26.2.tar.gz
  2. tar zxf nginx-1.26.2.tar.gz
  3. tar zxf echo-nginx-module-0.63.tar.gz
复制代码

  1. ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --add-module=/root/echo-nginx-module-0.63 --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
复制代码

编译

将旧版本复制一份

将新版本复制到/usr/local/nginx/sbin
  1. \cp -f /root/nginx-1.26.2/objs/nginx /usr/local/nginx/sbin
复制代码
此时旧版本还在运行,以是无法开启新版本

启动新版本
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表