一、前言

        本文主要介绍

1.nginx的优点

2.nginx使用的模型

3.nginx的三种安装方式

​    1.默认的仓库(操作系统默认的仓库)(版本低,配置不易读)(不建议)

​    2.nginx的官方仓库安装(建议使用)

​    3.编译安装(自定义指定安装目录,配置文件目录等)

   

二、介绍

优点

1.轻量

Nginx非常轻量
功能模块少(源代码仅保留http与核心模块代码,其余不够核心代码会作为插件来安装)

2.模块化

代码模块化 (易读,便于二次开发,对于开发人员非常友好)

3.兼容性

适合当前主流架构趋势, 微服务、云架构、中间层

4.运维成本

统一技术栈, 降低维护成本*,* 降低技术更新成本。

模型

Nginx采用Epool网络模型,Apache采用Select模型

Select: 
       当用户发起一次请求,select模型就会进行一次遍历扫描,从而导致性能低下。
Epool:
       当用户发起请求,epool模型会直接进行处理,效率高效,并无连接限制。
处理大量的连接的读写,Apache所采用的select网络I/O模型非常低效。

用一个比喻来解释Apache采用的select模型和Nginx采用的epoll模型进行之间的区别

        假设你在大学读书,住的宿舍楼有很多间房间,你的朋友要来找你。select版宿管大妈就会带着你的朋友挨个房间去找,直到找到你为止。而epoll版宿管大妈会先记下每位同学的房间号,你的朋友来时,只需告诉你的朋友你住在哪个房间即可,不用亲自带着你的朋友满大楼找人。如果来了10000个人,都要找自己住这栋楼的同学时,select版和epoll版宿管大妈,谁的效率更高,不言自明。同理,在高并发服务器中,轮询I/O是最耗时间的操作之 一,select和epoll的性能谁的性能更高,同样十分明了。

nginx和apache的区别

Nginx

1.轻量
    采用 C 进行编写,同样的 web 服务,会占用更少的内存及资源
    
2.抗并发
    nginx 以 epoll and kqueue 作为开发模型,处理请求是异步非阻塞的,负载能力比 apache 高很多,
    
3.处理静态文件能力强
    静态处理性能比 apache 高三倍以上
    
4.配置简洁
    nginx 配置简洁,正则配置让很多事情变得简单,而且改完配置能使用 -t 测试配置有没有问题,apache 配置复杂,重启的时候发现配置出错了,会很崩溃
    
5.负载均衡器
    nginx 作为负载均衡服务器,支持 7 层负载均衡
    nginx 本身就是一个反向代理服务器,而且可以作为非常优秀的邮件代理服务器
    
6.启动容易,7*24小时运行
    启动特别容易, 并且几乎可以做到 7*24 不间断运行,即使运行数个月也不需要重新启动,还能够不间断服务的情况下进行软件版本的升级

apache

1.rewirte能力强
    apache 的 rewrite 比 nginx 强大,在 rewrite 频繁的情况下,用 apache    
    
2.对php支持更加简单
    apache 对 PHP 支持比较简单,nginx 需要配合其他后端用

二、官网

nginx官网:

​    https://nginx.org/

编译安装官网:

​    源码下载:

​        https://github.com/nginx/nginx/

​        https://nginx.org/download/

​    

​    编译参数:(.configure的全部参数说明)

​        https://nginx.org/en/docs/configure.html

​    编译 nginx 源码需要 3 个基础库

​        https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/#install-nginx-dependencies

三、安装部署nginx

三种安装方式:       

1.默认的仓库(操作系统默认的仓库)(版本低,配置不易读)(不建议)

2.nginx的官方仓库(建议使用)

3.编译安装(自定义指定安装目录,配置文件目录等)

Nginx 三种安装方式对比总结

对比维度1. 默认系统仓库安装2. 官方仓库安装 (推荐)3. 源码编译安装
获取方式使用系统自带的源 (如 yum / apt)添加 Nginx 官方提供的源后,使用包管理器安装下载 .tar.gz 源码包,使用 ./configure 和 make 编译
安装命令示例yum install nginx -y先装官方源包,再 yum install nginx -y./configure --prefix=... make && make install
版本新旧❌ 版本极低(系统求稳,往往落后几个大版本)✅ 版本较新(紧跟官方稳定版或主线版)✅ 版本自由(想用哪个版本就下哪个)
安装/配置路径分散,符合系统标准(如 /etc/nginx/)分散,符合系统标准(如 /etc/nginx/)🎯 高度集中(所有文件都在指定的 --prefix 目录下,如 /usr/local/nginx)
配置文件易读性❌ 极差(被严重拆分、include 到处都是)❌ 较差(同左,找配置容易迷路)✅ 极好(通常只有一个主 nginx.conf 和少部分辅助文件,结构清晰)
模块定制能力❌ 不可定制(只能使用官方打包好的固定模块)❌ 不可定制(只能使用官方打包好的固定模块)✅ 极高(按需 --with 添加或 --without 剔除,支持第三方模块如 Lua)
依赖处理自动处理依赖,一条命令搞定自动处理依赖,配置好源后一条命令搞定需手动安装编译依赖(gcc, pcre, zlib, openssl 等)
服务管理✅ 自带 systemd 脚本,直接用 systemctl start nginx✅ 自带 systemd 脚本,直接用 systemctl start nginx❌ 无自带脚本,需手动写 nginx.service 或使用二进制命令管理(如 nginx -s reload)
后期升级极简单(yum update),但升级后版本依然受限极简单(yum update),可平滑更新到最新版较繁琐(需下载新源码、重新编译、替换二进制文件并重启)
适用场景个人测试、内部非核心系统🏆 绝大多数企业生产环境需要特殊架构(如网关定制模块)、有严格目录洁癖、需深度定制的环境

方式一、默认仓库安装(不推荐)

📚环境说明:

服务器地址操作系统
10.0.0.61ubt22.04

1.准备一台服务器,安装操作系统(我的这里是以ubt为例)

🖥️步骤

1.下载安装

[root@node61 ~]# apt -y install nginx

2.验证

[root@node61 ~]# nginx -v
nginx version: nginx/1.18.0 (Ubuntu)
[root@node61 ~]# 

默认支持systemd

[root@node61 ~]# systemctl status nginx.service 
● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2026-11-09 17:25:17 CST; 1min 19s ago
       Docs: man:nginx(8)
    Process: 2757 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 2758 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 2857 (nginx)
      Tasks: 2 (limit: 2172)
     Memory: 4.4M
        CPU: 88ms
     CGroup: /system.slice/nginx.service
             ├─2857 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             └─2862 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" >

Nov 09 17:25:17 node61 systemd[1]: Starting A high performance web server and a reverse proxy server...
Nov 09 17:25:17 node61 systemd[1]: Started A high performance web server and a reverse proxy server.
[root@node61 ~]# 

3.卸载

[root@node61 nginx]# apt -y remove nginx
[root@node61 nginx]# apt autoremove

本文作者吴玉桦,转载请标注原文链接。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐