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是否关闭。