【Linux SRE培训】只需三分钟,带你快速掌握Nginx服务!
Nginx (engine x)是培训一个开源的,具备高性能、只需高并发、分钟服务高可靠性的速掌WWW服务和代理服务软件。
由俄罗斯人 IgorSysoev 开发,培训作者将源代码以类 BSD 许可证的只需形式开源出来供全球使用。
2019年,分钟服务F5将收购 NGINX,速掌总价值约为6.7亿美元。培训F5 负载均衡厂商。只需
开源,分钟服务是速掌说可以直接获取 Nginx 的源代码,并且可以免费使用。培训
高性能,只需是分钟服务说处理速度非常快,且消耗的资源很低。
高并发,支持并发连接1-5万,且消耗的资源很低。
高可靠,体现在服务非常稳定。
并发5万,说的是静态小文件,源码下载NGINX(5万并发)+PHP(700个并发)。

选择Nginx原因
1、开源、免费
2、功能强大、并且简单易用
3、高性能、高并发
4、高可靠性、高可扩展性(模块多,开发第三方模块)
5、社区活跃(前1万互联网网站),排名no.1,且增长快。
Nginx生态状况
OpenResty?是一个基于Nginx与Lua的高性能Web平台,其内部集成了大量精良的Lua库、第三方模块以及大多数的依赖项
用于方便地搭建能够处理超高并发、扩展性极高的动态Web应用、Web服务和动态网关。诞生于 2007 年
Kong网关是一款基于OpenResty(Nginx+Lua模块)编写的高可用、易扩展的,由Mashape公司开源的API Gateway项目
Kong是基于NGINX和Apache Cassandra或PostgreSQL构建的,能提供易于使用的香港云服务器RESTful API来操作和配置API管理系统,所以它可以水平扩展多个Kong服务器,通过前置的负载均衡配置把请求均匀地分发到各个Server,来应对大批量的网络请求
Lua是脚本语言,nginx+Lua是脚本语言,对请求过滤、控制
mysql-proxy 读写分离软件 使用lua开发的
Tengine是由淘宝网发起的Web服务器项目(http://tengine.taobao.org/)
Nginx企业应用
| 作为Web服务软件
Nginx是一个支持高性能、高并发的Web服务软件,它具有很多优越的特性,作为Web服务器,和Apache相比,Nginx能够支持更多的并发连接访问,而占用的资源却更少,效率更高,在功能上也强大了很多,几乎不逊色于Apache,而且Nginx更新频率更快,社区用户更火爆。
1、Nginx是一个静态Web服务软件,使用Nginx运行HTML、JS、亿华云计算CSS、小图片等静态数据(此功能类似lighttpd软件)apache,lighttpd,IIS,Node.js
2、支持动静分离功能apache,lighttpd,IIS
3、支持动态Web服务扩展PHP(fastcgi_pass)JAVA(proxy_pass)Python(uwsgi_pass)memcache(memcache_pass)......
Nginx结合FastCGI运行PHP动态程序(使用fastcgi_pass方式)
Nginx结合proxy_pass支持tomcat动态程序(使用proxy_pass)
Nginx结合uwsgi_pass支持Python(使用uwsgi_pass)
4、支持安全的Web服务(https)全站HTTPS是以消耗性能为代价的,其实可以登陆用https,支付使用https
| 作为反向代理或负载均衡服务软件
在反向代理或负载均衡服务方面,Nginx可以作为Web服务、PHP/Tomcat/Python等动态服务及Memcached缓存的代理服务器,它具有类似专业反向代理软件(如Haproxy)的功能,同时也是一个优秀的邮件代理服务软件(最早开发这个产品的目的之一也是作为邮件代理服务),在Nginx的代理功能方面,已经支持TCP和UDP的代理,Nginx的代理功能已经越来越强大了
1、负载均衡同类软件:haproxy,lvs,硬件:F5,netscalernginx早期只支持http,现在也支持tcp/udp。支持tcp负载:负载mysql、应用服务。
2、反向代理与负载均衡区别强调
正向代理:由内向外。代替 效率低代替局域网内PC,请求外部应用服务。
反向代理:由外向内,代替,效率低代替外部的用户请求内部的应用服务器。
负载均衡:转发、效率高(LVS)甩手掌柜,后抛请求。
3、负载均衡和Web服务的走向
| 缓存服务器
在Web缓存服务方面,Nginx可通过自身的proxy_cache模块实现类Squid等专业缓存软件的功能。
常见缓存软件:squid,varnish,nginx,ats
| Nginx主要应用场景总结
1、静态Web服务器: 使用Nginx运行HTML、JS、CSS、小图片等静态数据(此功能类似lighttpd软件)。
2、配合运行动态Web服务器:Nginx结合FastCGI运行PHP等动态程序(例如使用fastcgi_pass方式)。Nginx结合proxy_pass支持Java动态程序(tomcat/resin服务)。Nginx结合uwsgi_pass支持Python。
3、反向代理/负载均衡http负载均衡
4、做Web缓存服务器(把文件放入内存里)。
5、支持安全的Web服务(https)
| Nginx核心特点
静态小文件高并发,占用资源少,而且软件本身小
1、支持高并发:能支持几万并发连接(特别是静态小文件业务环境)
2、资源消耗少:在3万并发连接下,开启10个Nginx线程消耗不到200MB内存
3、可以做HTTP反向代理及加速缓存,即负载均衡功能,内置对RS节点服务器健康检查功能,这相当于专业的haproxy软件或lvs的功能。具备squid等专业缓存软件等的缓存功能
| Nginx epoll模型和Apache select模型区别
Nginx使用最新的epoll(Linux2.6内核)和kqueue(freebsd)异步网络I/O模型,而Apache则使用的是传统的select模型
目前Linux下能够承受高并发访问的Squid、Memcached软件都采用的是epoll模型
简单总结:
1、epoll和select网络IO处理模型
2、epoll异步网络IO模型,支持高并发
3、select传统的网络IO模型,高并发能力弱
4、Apache则使用的是传统的select模型,Nginx使用高并发的epoll模型
异步和同步:以及异步的静态化的案例
网络IO模型概述
通常来说,网络IO可以抽象成用户态和内核态之间的数据交换。一次网络数据读取操作(read),可以拆分成两个步骤:
1、网卡驱动等待数据准备好(内核态)
2、将数据从内核空间拷贝到进程空间(用户态)
根据这两个步骤处理方式不一样,我们通常把网络IO划分成阻塞IO和非阻塞IO
| Nginx软件核心组成
1、Nginx可执行命令:
它是Nginx本身框架以及相关模块等构建的一个二进制文件,这个文件就相当于汽车本身,所有的功能都由它提供
2、nginx.conf配置文件:
它相当于驾驶人员,虽然二进制可执行文件已经提供了许多的功能,但是这些功能究竟有没有开启,或者开启后定义怎样的行为去处理请求,都是由nginx.conf这个文件决定的,所以他就相当于这个汽车的驾驶员,控制这个汽车的行为
3、访问日志access.log:
它相当于这辆汽车经过所有地方形成的GPS轨迹,access.log会记录Nginx处理过的每一条HTTP的请求信息、响应信息
4、错误日志error.log:
它相当于飞机的黑匣子,当出现了一些不可预期的问题时,可以通过error.log将问题定位出来
Nginx软件安装
| yum安装
配置nginx源
# 方法一: # 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 # 方法二: # 非交互操作注意转义字符 # cat > /etc/yum.repos.d/nginx.repo <<EOF [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 EOF安装并启动
yum install nginx -y rpm -qa nginx # 如果服务器上开启 http 服务要先关闭 http 服务 systemctl stop httpd systemctl disable httpd # 启动 nginx 服务 systemctl start nginx systemctl enable nginx systemctl status nginx # 验证最终的安装是否正确 wget 10.0.0.7 # 将 IP 地址改为自己服务器的 IP curl 10.0.0.7 # 将 IP 地址改为自己服务器的 IP 或浏览器访问| 编译安装
下载源码包
mkdir -p /server/tools cd /server/tools wget http://nginx.org/download/nginx-1.20.1.tar.gz安装依赖
# rewrite正则相关pcre:URL重写软件,实现伪静态\URL跳转等、SEO优化 yum install pcre pcre-devel -y # https加密访问用它 yum install openssl openssl-devel -y编译安装步骤
userdel -r www useradd -u 1111 -s /sbin/nologin www -M # 解压 nginx 压缩包 tar xf nginx-1.20.1.tar.gz cd nginx-1.20.1/ ln -s /application/nginx-1.20.1/ /application/nginx # 指定 nginx 用户权限并进行编译安装 ./configure --user=www --group=www --prefix=/application/nginx-1.20.1/ --with-http_stub_status_module --with-http_ssl_module --with-pcre make make install # nginx 启动检查 lsof -i :80 /application/nginx/sbin/nginx -t /application/nginx/sbin/nginx netstat -lntup|grep nginx验证最终的安装是否正确
wget 10.0.0.8 # 将 IP 地址改为自己服务器的 IP curl 10.0.0.8 # 将 IP 地址改为自己服务器的 IP 或浏览器访问configure参数作用

配置 nginx PATH环境变量
# 在 /etc/profile 文件里加入 vim /etc/profile export PATH="/application/nginx/sbin/:$PATH" # 增加后执行下面,使之生效 . /etc/profile # 检查测试 echo $PATH nginx -t配置 systemd 启动方式
# vim /usr/lib/systemd/system/nginx.service [Unit] Description=The nginx HTTP and reverse proxy server After=network-online.target remote-fs.target nss-lookup.target Wants=network-online.target [Service] Type=forking PIDFile=/application/nginx/logs/nginx.pid ExecStartPre=/usr/bin/rm -f /application/nginx/logs/nginx.pid ExecStartPre=/application/nginx/sbin/nginx -t ExecStart=/application/nginx/sbin/nginx ExecReload=/application/nginx/sbin/nginx -s reload KillSignal=SIGQUIT TimeoutStopSec=5 KillMode=process PrivateTmp=true [Install] WantedBy=multi-user.target # chmod +x /usr/lib/systemd/system/nginx.service # systemctl enable nginx # pkill nginx # systemctl start nginx # lsof -i :80相关文章
电脑百度打开显示错误,如何解决?(遇到电脑百度打开显示错误该怎么办?)
摘要:在使用电脑时,我们经常会遇到电脑百度打开显示错误的情况。这不仅会影响我们的上网体验,还可能导致我们无法获取到所需的信息。了解如何解决这个问题是非常重要的。本文将为您介绍一些解决电脑...2025-11-04
首先,咱们还是来介绍一下,什么是账户吧!账户,最直白的例子便是咱们每次登陆到电脑的时候,点击的那个正方形中显示的名字,这个便是咱们电脑中的账户了,一般来说,电脑默认的账户都是具有管理员权限的。但是若是2025-11-04
如何在Windows 7系统中添加打印目录呢?相信不少人可能有点苦恼,在这里,小编给大家介绍一个方法,希望对大家有所帮助。首先我们需要创建一个Printdir.bat文件。新建一个记事本打开,然后把以2025-11-04
启动Windows 7时会黑屏,视频适配器问题是导致出现此情况的最常见原因。按顺序尝试以下故障排除过程。假如第一个过程中的步骤无法解决问题,请执行下一个过程。重新安装视频驱动程序1.右键单击任务栏,然2025-11-04一步学会如何制作引导优盘教程(轻松制作引导优盘,让文件传输更便捷)
摘要:在数字化时代,我们每天都面临着大量的文件传输和数据备份需求。而为了更高效、便捷地进行文件传输,制作一个引导优盘成为了必备技能。本文将教您如何一步学会制作引导优盘,让文件传输变得更加...2025-11-04
微软在Windows 7中引入了“微软雅黑”字体,这比原来默认的宋体字看上去更圆润,视觉效果比以前更好。因此,有用户在IE8中将默认显示的字体设置为“微软雅黑”。但很多时候,你设置好的微软雅黑字体,总2025-11-04

最新评论