Nginx的安装

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Nginx 稳定版本
[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
# Nginx 主线版本
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

默认情况下,使用的Nginx是稳定版本的。如果要使用主线版本Nginx软件包,请运行以下命令:

1
sudo yum-config-manager --enable nginx-mainline

安装Nginx

1
2
3
sudo yum clean all			# 删除缓存数据
sudo yum makecache # 创建元数据缓存
sudo yum install nginx # 安装 Nginx

当提示您接受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
2
3
4
# 稳定版本
deb http://nginx.org/packages/debian `lsb_release -cs` nginx
# 主线版本
#deb http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx

添加Nginx的官方密钥

1
curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -

安装Nginx

1
2
sudo apt update				# 更新可用软件包列表
sudo apt install nginx # 安装Nginx

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
2
3
4
5
6
7
8
9
10
11
12
13
14
# Nginx 稳定版本
[nginx-stable]
name=nginx-stable
enabled=1
autorefresh=1
baseurl=http://nginx.org/packages/sles/$releasever
gpgcheck=1
# Nginx 主线版本
[nginx-mainline]
name=nginx-mainline
enabled=0
autorefresh=1
baseurl=http://nginx.org/packages/mainline/sles/$releasever
gpgcheck=1

添加Nginx的官方密钥

1
2
curl -os /tmp/nginx_signing.key https://nginx.org/keys/nginx_signing.key
sudo rpmkeys --import /tmp/nginx_signing.key

安装Nginx

1
2
3
sudo zypper clean				# 清理本地缓存
sudo zypper refresh # 刷新全部软件源
sudo zypper install nginx # 安装Nginx