Nginx概述

与 Apache 软件类似,Nginx (“engine x”)是一个开源的、支持高性能、高并发的web服务和代理服务软件。它是由俄罗斯人 Igor Sysoev 开发的,最初被应用在俄罗斯的大型网站 www.rambler.ru 上。后来作者将源代码以类 BSD 许可证的形式开源出来供全球使用。

Nginx 可以运行在Unix、Linux、BSD、Mac Os X、Solaris,以及 Microsoft Windows等操作系统中。随着 Nginx 在国内很多大型网站的稳定高效运行,其近两年也逐渐被越来越多的中小型网站所使用。当前流行的 Nginx web 组合被称为 LNMP。

Nginx 因具有高并发(特别是静态资源)、占用系统资源少等特性且功能丰富而逐渐流行起来,到目前为止大有赶超 Apache,而获得第一的趋势。

why Nginx

  • 可靠,服务稳定,而且非常轻量

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

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

    安装简单、配置文件简洁,配置灵活

  • 高性能:支持高并发,能支持几万并发连接

  • 资源消耗少:3万并发,开启10个Nginx线程消耗不到200M内存

  • 功能强大

    可做反向代理及负载均衡,相当于专业的Haproxy或LVS功能

    可做缓存(相当于Squid)

  • Nginx支持Epoll网络I/O模型,Apache采用传统Select网络I/O模型

    Select: 当用户发起一次请求,select模型就会进行一次遍历扫描,处理高并发大量请求时性能低下。

    Epool: 当用户发起请求,epool模型会直接进行处理,效率高效,并无连接限制。

    比喻:你去宿舍找人。select会带你挨个房间找;epool会先登记每个人的房间号,你来了只需告诉你房间号。

  • 互联网公司都选择Nginx

    1.Nginx技术成熟,具备的功能是企业最常使用而且最需要的

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

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

Nginx典型应用场景

(1)作为Web 服务软件

(2)反向代理或负载均衡服务
在反向代理负载均衡功能方面,它类似于大名鼎鼎的 LVS负载均衡以及 Haproxy 专业代理软件,但是Nginx 部署起来更为简单、方便。

(3)前端业务数据缓存服务
在Web缓存服务方面,Nginx可通过自身的proxy_cache模块实现类似Squid等专业缓存软件的功能。

Nginx安装

安装方式:

1、编译安装Nginx (1.版本随意 2.安装复杂 3.升级繁琐 4.规范 5.便于管理)

2、epel仓库安装Nginx (1.版本较低 2.安装简单 3.配置不易读)

3、官方仓库安装Nginx (1.版本较新 2.安装简单 3.配置易读)

2与3安装对比:

##### epel仓库安装 #####
直接yum install -y nginx 是走eple仓库

root@web02,172.16.1.8:~ # nginx -v
nginx version: nginx/1.20.1    #//版本较低
公司没规定就直接安,因为快

##### 官方仓库安装 #####
https://nginx.org/en/download.html 拉到最底下
https://nginx.org/en/linux_packages.html
https://nginx.org/en/linux_packages.html#RHEL-CentOS

# 先vim /etc/yum.repos.d/nginx.repo再安装
把上面的官方仓库考进来
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

# 此时yum安装可以看到是走上面的[nginx-stable]源
yum install -y nginx

# 查看版本
[root@web01 /etc/yum.repos.d]# nginx -v
nginx version: nginx/1.24.0    #//版本较新

Nginx启停

# 启动
systemctl start nginx
nginx
/usr/sbin/nginx

# nginx加入开机自启
systemctl enable nginx

# 停止
systemctl stop nginx
nginx -s stop
/usr/sbin/nginx -s stop

# 重启
systemctl restart nginx

# 重新加载
systemctl reload nginx


# 选项
-c 指定配置文件的路径
-t 检测配置文件语法问题(不检测单词拼写)
-s 启停重载 属于服务操作
-v 查看版本号
-V 检查nginx的编译参数


验证是否安装成功:打开浏览器访问

注意防火墙和SElinux是否关闭。

Nginx快速入门:简介、安装、配置-LMLPHP

08-07 16:12