Nginx的介绍
Nginx(发音同engine x)是异步框架的网页服务器,也可以用作反向代理、负载平衡器和HTTP缓存。该软件由伊戈尔·赛索耶夫创建并于2004年首次公开发布。2011年成立同名公司以提供支持。2019年3月11日,Nginx公司被F5 Networks以6.7亿美元收购。
Nginx是免费的开源软件,根据类BSD许可证的条款发布。一大部分Web服务器使用Nginx,通常作为负载均衡器。
具体大家可以看下维基百科:https://zh.wikipedia.org/wiki/Nginx
Nginx的特点
Nginx可以部署在网络上使用FastCGI脚本、SCGI处理程序、WSGI应用服务器或Phusion Passenger模块的动态HTTP内容,并可作为软件负载均衡器。
Nginx使用异步事件驱动的方法来处理请求。Nginx的模块化事件驱动架构可以在高负载下提供更可预测的性能。
Nginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势。与旧版本(<=2.2)的Apache不同,Nginx不采用每客户机一线程的设计模型,而是充分使用异步逻辑从而削减了上下文调度开销,所以并发服务能力更强。整体采用模块化设计,有丰富的模块库和第三方模块库,配置灵活。 在Linux操作系统下,Nginx使用epoll事件模型,得益于此,Nginx在Linux操作系统下效率相当高。同时Nginx在OpenBSD或FreeBSD操作系统上采用类似于epoll的高效事件模型kqueue。
根据Netcraft在2016年11月网络服务器调查,Nginx被发现是所有“活跃”站点(被调查站点的18.22%)和百万最繁忙站点(被调查站点的27.83%)中使用次数最多的Web服务器。根据W3Techs的数据,前100万个网站中的37.7%,前10万个网站中的49.7%,以及前10000个网站中的57.0%被使用。据BuiltWith统计,在全球前10000个网站中,有38.2%的网站使用Nginx。维基百科使用Nginx作为其SSL终端代理。从OpenBSD 5.2版本(2012年11月1日)开始,Nginx成为了OpenBSD基础系统的一部分,提供了替代Apache 1.3系统的替代方案,但是后来被替换为OpenBSD自己的httpd。
Nginx的安装
Nginx官方给我们提供了两种安装方法,一种是源码自己编译,另外一种是Linux packages安装。
RHEL/CentOS:(下面以CentOS8为例)
安装先决条件
1 | sudo yum install yum-utils |
创建一个yum源,sudo vim /etc/yum.repos.d/nginx.repo
,把下面的代码写入nginx.repo文件当中,如果是 红帽
系统,把下面代码中的 centos
替换成 rhel
即可。
1 | # Nginx 稳定版本 |
默认情况下,使用的Nginx是稳定版本的。如果要使用主线版本Nginx软件包,请运行以下命令:
1 | sudo yum-config-manager --enable nginx-mainline |
安装Nginx
1 | sudo yum clean all # 删除缓存数据 |
当提示您接受GPG密钥时,请验证指纹是否匹配 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62
,如果是,则接受它。
Debian & Ubuntu:(下面以Debian10为例)
安装先决条件
1 | sudo apt install curl gnupg2 ca-certificates lsb-release |
创建一个apt源,sudo vim /etc/apt/sources.list.d/nginx.list
,把下面的代码写入nginx.repo文件当中,如果是 Ubuntu
系统,把下面代码中的 debian
替换成 ubuntu
即可。
1 | # 稳定版本 |
添加Nginx的官方密钥
1 | curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add - |
安装Nginx
1 | sudo apt update # 更新可用软件包列表 |
SUSE & openSUSE:(下面以SUSE为例)
安装先决条件
1 | sudo zypper install curl ca-certificates gpg2 |
创建一个zypper源,sudo vim /etc/zypp/repos.d/nginx.repo
,把下面的代码写入nginx.repo文件当中,如果是 openSUSE
系统,把下面代码中的 $releasever
替换成 15
即可。
1 | # Nginx 稳定版本 |
添加Nginx的官方密钥
1 | curl -os /tmp/nginx_signing.key https://nginx.org/keys/nginx_signing.key |
安装Nginx
1 | sudo zypper clean # 清理本地缓存 |