Nginx安装

Nginx 安装

Nginx版本介绍

Nginx 的官方网站为: http://nginx.org

打开源码可以看到如下的页面内容

image

Nginx 的官方下载网站为 http://nginx.org/en/download.html,当然你也可以之间在首页选中右边的 download 进入版本下载网页。在下载页面我们会看到如下内容:

image

获取Nginx源码

http://nginx.org/download/

image

准备服务器系统

环境准备

  • 虚拟机:VMware WorkStation
  • Linux 系统:Centos7
  • 上传软件工具:MobaXterm、xsheel,SecureCRT 之一
  • 网络

确认CentOS的内核

准备一个内核为 2.6 及以上版本的操作系统,因为 linux2.6 及以上内核才支持 epoll,而 Nginx 需要解决高并发压力问题是需要用到 epoll,所以我们需要有这样的版本要求。

我们可以使用 uname -a 命令来查询linux的内核版本

1
2
[root@master ~]# uname -a
Linux master 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

确保Centos能联网

1
ping www.baidu.com

三种网络模式:桥接、主机、NAT,建议使用虚拟机使用 NAT 模式

image

NAT 模式下,只要主机有网络,则虚拟机也有网络。

确认关闭防火墙

这一项的要求仅针对于那些对 Linux 系统的防火墙设置规则不太清楚的,建议大家把防火墙都关闭掉,因为把防火墙关闭掉,可以省掉后续 Nginx 使用过程中遇到的诸多问题。

关闭的方式有如下两种:

1
2
3
systemctl stop firewalld      # 关闭运行的防火墙,系统重新启动后,防火墙将重新打开
systemctl disable firewalld # 永久关闭防火墙,,系统重新启动后,防火墙依然关闭
systemctl status firewalld # 查看防火墙状态

如果不想关闭防火墙,记得开放 Nginx 的访问端口

确认停用selinux

selinux(security-enhanced linux),美国安全局对于强制访问控制的实现,在 Linux2.6 内核以后的版本中,selinux 已经成功内核中的一部分。可以说selinux 是 Linux 史上最杰出的新安全子系统之一。虽然有了 selinux,我们的系统会更安全,但是对于使用 Nginx 或者其他的学习过程中,会有很多设置,所以这块建议大家将 selinux 进行关闭。

sestatus 查看状态

1
2
[root@master ~]# sestatus
SELinux status: disabled

如果查看不是 disabled 状态,我们可以通过修改配置文件来进行设置,修改 SELINUX=disabled,然后重启下系统即可生效。

1
vim /etc/selinux/config

image

Nginx环境安装

Nginx 的安装方式有两种分别是:

  • 通过 Nginx 源码
    • 通过 Nginx 源码简单安装
    • 通过 Nginx 源码复杂安装
  • 通过 yum 安装

如果通过 Nginx 源码安装需要提前准备安装好环境,我相信,任何 C 语言编写的软件都离不开这些环境,安装后所有软件都会收益,往下看。

GCC编译器

Nginx 是使用 C 语言编写的程序,因此想要运行 Nginx 就需要安装一个编译工具。GCC 就是一个开源的编译器集合,用于处理各种各样的语言,其中就包含了 C 语言。

使用命令 yum install -y gcc 来安装

安装成功后,可以通过 gcc --version 来查看 gcc 是否安装成功

1
2
3
4
5
# 安装 gcc
yum install -y gcc

# 查看 gcc 版本
gcc --version

PCRE

Nginx 在编译过程中需要使用到 PCRE 库(perl Compatible Regular Expressoin 兼容正则表达式库),因为在 Nginx 的 Rewrite 模块和 Http 核心模块都会使用到 PCRE 正则表达式语法。

可以使用命令 yum install -y pcre pcre-devel 来进行安装

安装成功后,可以通过 rpm -qa pcre pcre-devel 来查看是否安装成功

1
2
3
4
5
# 安装 PCRE 和 pcre-devel
yum install -y pcre pcre-devel

# 查看 PCRE 是否安装成功
rpm -qa pcre pcre-devel

zlib

zlib 库提供了开发人员的压缩算法,在 Nginx 的各个模块中需要使用 gzip 压缩,所以我们也需要提前安装其库及源代码 zlib 和 zlib-devel。

可以使用命令 yum install -y zlib zlib-devel 来进行安装

安装成功后,可以通过 rpm -qa zlib zlib-devel 来查看是否安装成功

1
2
3
4
5
# 安装 zlib 和 zlib-devel
yum install -y zlib zlib-devel

# 查看 zlib 和 zlib-devel 是否安装成功
rpm -qa zlib zlib-devel

OpenSSL

OpenSSL 是一个开放源代码的软件库包,应用程序可以使用这个包进行安全通信,并且避免被窃听。

SSL:Secure Sockets Layer 安全套接协议的缩写,可以在 Internet 上提供秘密性传输,其目标是保证两个应用间通信的保密性和可靠性。在 Nginx 中,如果服务器需要提供安全网页时就需要用到 OpenSSL 库,所以我们需要对 OpenSSL 的库文件及它的开发安装包进行一个安装。

可以使用命令 yum install -y openssl openssl-devel 来进行安装

安装成功后,可以通过 rpm -qa openssl openssl-devel 来查看是否安装成功

1
2
3
4
5
# 安装 OpenSSL 库
yum install -y openssl openssl-devel

# 查看 OpenSSL 是否安装成功
rpm -qa openssl openssl-devel

全部安装命令

上述命令,一个个来的话比较麻烦,我们也可以通过一条命令来进行安装

yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel 进行全部安装。

1
2
3
4
5
# 全部安装 GCC、PCRE、zlib、OpenSSL
yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

# 查看安装版本
rpm -qa pcre pcre-devel zlib zlib-devel openssl openssl-devel

Nginx安装

Nginx 的官方下载网站为 http://nginx.org/en/download.html

源码简单安装

  1. 进入官网查找需要下载版本的链接地址,然后使用 wget 命令进行下载,这里下载在 /opt 目录下
1
2
3
cd /opt

wget http://nginx.org/download/nginx-1.21.6.tar.gz

这里下载的版本是 1.21.6,请根据需求更改版本号。如果 wget 命令下载速度慢,可以先下载到 Windows 系统,再使用工具上传到 Linux 下。

  1. 建议大家将下载的资源进行包管理,在 /opt 目录下创建 nginx/core 目录,-p 代表允许创建多级目录
1
2
3
4
5
# 创建指定目录
mkdir -p /opt/nginx/core

# 移动到指定目录
mv nginx-1.21.6.tar.gz nginx/core
  1. 解压缩
1
2
3
4
5
# 进入指定目录
cd /opt/nginx/core

# 解压
tar -xzf nginx-1.21.6.tar.gz
  1. 进入资源文件中,发现 configure 文件,执行该文件
1
2
3
4
5
# 进入解压出的目录
cd nginx-1.21.6/

# 执行 configure
./configure --prefix=/usr/local/nginx
  1. 编译
1
make
  1. 安装
1
make install
  1. 查看 nginx 的安装位置
1
whereis nginx
1
2
[root@master sbin]# whereis nginx
nginx: /usr/local/nginx
  1. 启动测试。启动文件在安装目录下的 sbin 命令
1
2
3
4
5
# 进入启动文件的目录
cd /usr/local/nginx/sbin

# 执行 nginx 文件
./nginx

访问自己 Linux 的 IP 地址,不需要加端口,如果看到如下图,代表成功

image

yum安装

使用源码进行简单安装,我们会发现安装的过程比较繁琐,需要提前准备 GCC 编译器、PCRE 兼容正则表达式库、zlib 压缩库、OpenSSL 安全通信的软件库包,然后才能进行 Nginx 的安装。下面使用 yum 安装,过程更简单。

  1. 安装 yum-utils
1
sudo yum  install -y yum-utils
  1. 添加 yum 源文件
1
vim /etc/yum.repos.d/nginx.repo
  1. 添加如下内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[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-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
  1. 使用 yum 安装 Nginx
1
sudo yum install -y nginx
  1. 查看是否安装成功
1
yum list | grep nginx

image

  1. 使用 yum 进行安装
1
yun install -y nginx
  1. 查看nginx的安装位置
1
whereis nginx
  1. 启动测试
1
2
3
4
5
# 进入文件
cd /usr/sbin

# 启动 nginx
./nginx

image

访问自己 Linux 的 IP 地址,不需要加端口,如果看到如下图,代表成功

image

源码简单安装和yum安装的差异

这里先介绍一个命令: ./nginx -V,通过该命令可以查看到所安装 Nginx 的版本及相关配置信息。

简单安装的配置信息查看:

1
2
3
4
[root@master sbin]# ./nginx -V
nginx version: nginx/1.21.6
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
configure arguments: --prefix=/usr/local/nginx

yum 安装的配置信息查看:(这里截取 1.16.1 版本的 图片)

image

可以看出 yum 安装的参数非常多,如果想源码简单安装也有这些参数,这涉及到源码复杂安装,往下看。

执行 tar -zxvf nginx-1.16.1.tar.gz 对下载的资源进行解压缩后,进入压缩后的目录,可以看到如下结构

image

内容解释:

内容名 作用
auto 存放的是编译相关的脚本
CHANGES 版本变更记录
CHANGES.ru 俄罗斯文的版本变更记录
conf Nginx 默认的配置文件
configure Nginx 软件的自动脚本程序,是一个比较重要的文件,作用如下: 1、检测环境及根据环境检测结果生成 C 代码 2、生成编译代码需要的 Makefile 文件
contrib 存放的是几个特殊的脚本文件,其中 README 中对脚本有着详细的说明
html 存放的是 Nginx 自带的两个 html 页面,访问 Nginx 的首页和错误页面
LICENSE 许可证的相关描述文件
man Nginx 的 man 手册
README Nginx 的阅读指南
src Nginx 的源代码

源码复杂安装

这种方式和简单的安装配置不同的地方在第一步,通过 ./configure 来对编译参数进行设置,需要我们手动来指定。那么都有哪些参数可以进行设置,接下来我们进行一个详细的说明。

  • PATH:是和路径相关的配置信息
  • with:是启动模块,默认是关闭的
  • without:是关闭模块,默认是开启的

我们先来认识一些简单的路径配置已经通过这些配置来完成一个简单的编译:

指令 作用 默认值
–prefix=PATH 指向 Nginx 的安装目录 /usr/local/nginx
–sbin-path=PATH 指向(执行)程序文件(nginx)的路径 <安装目录>/sbin/nginx
–modules-path=PATH 指向 Nginx 动态模块安装目录 <安装目录>//modules
–conf-path=PATH 指向配置文件(nginx.conf)的路径 <安装目录>/conf/nginx.conf
–error-log-path=PATH 指向错误日志文件的路径 <安装目录>/logs/error.log
–http-log-path=PATH 指向访问日志文件的路径 <安装目录>/logs/access.log
–pid-path=PATH 指向 Nginx 启动后进行ID的文件路径 <安装目录>/logs/nginx.pid
–lock-path=PATH 指向 Nginx 锁文件的存放路径 <安装目录>/logs/nginx.lock

源码复杂安装命令如下:(先进入解压目录)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 进入解压目
cd ~/nginx/core

# 安装命令
./configure --prefix=/usr/local/nginx \
--sbin-path=/usr/local/nginx/sbin/nginx \
--modules-path=/usr/local/nginx/modules \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--error-log-path=/usr/local/nginx/logs/error.log \
--http-log-path=/usr/local/nginx/logs/access.log \
--pid-path=/usr/local/nginx/logs/nginx.pid \
--lock-path=/usr/local/nginx/logs/nginx.lock

# 执行编译和安装
make && make install

在使用上述命令之前,需要将之前服务器已经安装的 Nginx 进行卸载。

Nginx卸载

简单安装后如果想要卸载,步骤分为三步骤:

步骤一:需要将 Nginx 的进程关闭(要在 安装目录的 sbin 目录下)

1
./nginx -s stop

步骤二:将安装的 Nginx 进行删除

1
rm -rf /usr/local/nginx

步骤三:进入解压目录,将安装包之前编译的环境清除掉

1
2
3
4
5
# 进入解压目录
cd /opt/nginx/core

# 清除环境
make clean

Nginx目录结构分析

在使用 Nginx 之前,我们先对安装好的 Nginx 目录文件进行一个分析,在这块给大家介绍一个工具 tree,通过 tree 我们可以很方面的去查看 Centos 系统上的文件目录结构,当然,如果想使用 tree 工具,就得先通过 yum install -y tree 来进行安装,安装成功后,可以通过执行 tree /usr/local/nginx (tree 后面跟的是 Nginx 的安装目录),获取的结果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
[root@master /]# tree /usr/local/nginx
/usr/local/nginx
├── client_body_temp
├── conf
│   ├── fastcgi.conf
│   ├── fastcgi.conf.default
│   ├── fastcgi_params
│   ├── fastcgi_params.default
│   ├── koi-utf
│   ├── koi-win
│   ├── mime.types
│   ├── mime.types.default
│   ├── nginx.conf
│   ├── nginx.conf.default
│   ├── scgi_params
│   ├── scgi_params.default
│   ├── uwsgi_params
│   ├── uwsgi_params.default
│   └── win-utf
├── fastcgi_temp
├── html
│   ├── 50x.html
│   └── index.html
├── logs
│   ├── access.log
│   ├── error.log
│   └── nginx.pid
├── proxy_temp
├── sbin
│   ├── nginx
│   └── nginx.old
├── scgi_temp
└── uwsgi_temp

9 directories, 22 files

CGI(Common Gateway Interface)通用网关【接口】,主要解决的问题是从客户端发送一个请求和数据,服务端获取到请求和数据后可以调用调用 CGI【程序】处理及相应结果给客户端的一种标准规范。

目录 文件名 作用
conf Nginx 所有配置文件目录
fastcgi.conf fastcgi相关配置文件
fastcgi.conf.default fastcgi.conf 的备份文件
fastcgi_params fastcgi 的参数文件
fastcgi_params.default fastcgi 的参数备份文件
scgi_params scgi 的参数文件
scgi_params.default scgi 的参数备份文件
uwsgi_params uwsgi 的参数文件
uwsgi_params.default uwsgi 的参数备份文件
mime.types 记录的是 HTTP 协议中的 Content-Type 的值和文件后缀名的对应关系
mime.types.default mime.types 的备份文件
nginx.conf 这是 Nginx 的核心配置文件,这个文件非常重要,也是我们即将要学习的重点
nginx.conf.default nginx.conf 的备份文件
koi-utf、koi-win、win-utf 这三个文件都是与编码转换映射相关的配置文件,用来将一种编码转换成另一种编码
html 存放 Nginx 自带的两个静态的 html 页面
50x.html 访问失败后的失败页面
index.html 成功访问的默认首页
logs 记录入门的文件,当 Nginx 服务器启动后,这里面会有 access.log error.log 和 nginx.pid 三个文件出现
access.log 访问日志,每次访问成功都会进行记录
error.log 错误日志,每次访问失败都会进行记录
nginx.pid 启动 Nginx 后,系统生成一个进程 PID,这个文件记录这个 PID
sbin 是存放执行程序文件 nginx
nginx 用来控制 Nginx 的启动和停止等相关的命令。注意:该文件名就叫 nginx

Nginx介绍

Nginx 介绍

Nginx是什么

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。

其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

名词解释

  1. Web服务器

WEB 服务器也叫网页服务器,英文名叫 Web Server,主要功能是为用户提供网上信息浏览服务。

  1. HTTP

HTTP 是超文本传输协议的缩写,是用于从 WEB 服务器传输超文本到本地浏览器的传输协议,也是互联网上应用最为广泛的一种网络协议。HTTP 是一个客户端和服务器端请求和应答的标准,客户端是终端用户,服务端是网站,通过使用 Web 浏览器、网络爬虫或者其他工具,客户端发起一个到服务器上指定端口的 HTTP 请求。

  1. POP3/SMTP/IMAP

POP3(Post Offic Protocol 3)邮局协议的第三个版本;

SMTP(Simple Mail Transfer Protocol)简单邮件传输协议;

IMAP(Internet Mail Access Protocol)交互式邮件存取协议;

通过上述名词的解释,我们可以了解到 Nginx 也可以作为电子邮件代理服务器。

  1. 正向代理

image

反向代理

image

正向代理的 Proxy 是多对一,反向代理的 Proxy 是一对多。

常见服务器对比

在介绍这一节内容之前,我们先来认识一家公司叫 Netcraft。

Netcraft 公司于 1994 年底在英国成立,多年来一直致力于互联网市场以及在线安全方面的咨询服务,其中在国际上最具影响力的当属其针对网站服务器、SSL市场所做的客观严谨的分析研究,公司官网每月公布的调研数据(Web Server Survey)已成为当今人们了解全球网站数量以及服务器市场分额情况的主要参考依据,时常被诸如华尔街杂志,英国 BBC,Slashdot 等媒体报道或引用。

我们先来看一组数据,我们先打开 Nginx 的官方网站 http://nginx.org/,找到 Netcraft 公司公布的数据,对当前主流服务器产品进行介绍。

image

上面这张图展示了 2019 年全球主流 Web 服务器的市场情况,其中有 Apache、Microsoft-IIS、google Servers、Nginx、Tomcat 等,而我们在了解新事物的时候,往往习惯通过类比来帮助自己理解事物的概貌。可以看出绿色线的 nginx 在 2019 年已经领现全球了。

所以下面我们把几种常见的服务器来给大家简单介绍下:

IIS

全称(Internet Information Services)即互联网信息服务,是由微软公司提供的基于 Windows 系统的互联网基本服务。Windows 作为服务器在稳定性与其他一些性能上都不如类 UNIX 操作系统,因此在需要高性能 Web 服务器的场合下,IIS 可能就会被「冷落」.

Tomcat

Tomcat是一个运行 Servlet 和 JSP 的 Web 应用软件,Tomcat 技术先进、性能稳定而且开放源代码,因此深受 Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的 Web 应用服务器。但是 Tomcat 天生是一个重量级的 Web 服务器,对静态文件和高并发的处理比较弱。

Apache

Apache 的发展时期很长,同时也有过一段辉煌的业绩。从上图可以看出大概在 2014 年以前都是市场份额第一的服务器。Apache 有很多优点,如稳定、开源、跨平台等。但是它出现的时间太久了,在它兴起的年代,互联网的产业规模远远不如今天,所以它被设计成一个重量级的、不支持高并发的 Web 服务器。在 Apache 服务器上,如果有数以万计的并发 HTTP 请求同时访问,就会导致服务器上消耗大量能存,操作系统内核对成百上千的 Apache 进程做进程间切换也会消耗大量的 CPU 资源,并导致 HTTP 请求的平均响应速度降低,这些都决定了 Apache 不可能成为高性能的 Web 服务器。这也促使了 Lighttpd 和 Nginx 的出现。

Lighttpd

Lighttpd 是德国的一个开源的 Web 服务器软件,它和 Nginx 一样,都是轻量级、高性能的 Web 服务器,欧美的业界开发者比较钟爱 Lighttpd,而国内的公司更多的青睐 Nginx,同时网上 Nginx 的资源要更丰富些。

其他的服务器

Google Servers,Weblogic, Webshpere(IBM) ……

Google Servers 是闭源的,市面上很少看到。Weblogic 和 Webshpere(IBM) 使用起来都需要支付一定费用。

经过各个服务器的对比,种种迹象都表明,Nginx 将以性能为王。这也是我们为什么选择 Nginx 的理由。

Nginx的优点

速度更快、并发更高

单次请求或者高并发请求的环境下,Nginx 都会比其他 Web 服务器响应的速度更快。一方面在正常情况下,单次请求会得到更快的响应,另一方面,在高峰期(如有数以万计的并发请求),Nginx 比其他 Web 服务器更快的响应请求。Nginx 之所以有这么高的并发处理能力和这么好的性能原因在于 Nginx 采用了多进程和 I/O 多路复用(epoll)的底层实现。

配置简单,扩展性强

Nginx 的设计极具扩展性,它本身就是由很多模块组成,这些模块的使用可以通过配置文件的配置来添加。这些模块有官方提供的也有第三方提供的模块,如果需要完全可以开发服务自己业务特性的定制模块

高可靠性

Nginx 采用的是多进程模式运行,其中有一个 master 主进程和 N 多个 worker 进程,一个 master 管理多个 worker,worker 进程的数量我们可以手动设置,每个 worker 进程之间都是相互独立提供服务,并且 master 主进程可以在某一个 worker 进程出错时,快速去「拉起」新的 worker 进程提供服务。

image

热部署(核心)

现在互联网项目都要求以 7 * 24 小时进行服务的提供,针对于这一要求,Nginx 也提供了热部署功能,即可以在 Nginx 不停止的情况下,对 Nginx 进行文件升级、更新配置和更换日志文件等功能。

成本低、BSD许可证

BSD 是一个开源的许可证,世界上的开源许可证有很多,现在比较流行的有六种分别是 GPL、BSD、MIT、Mozilla、Apache、LGPL。这六种的区别是什么,我们可以通过下面一张图来解释下:

image

Nginx的功能特性及常用功能

Nginx 提供的基本功能服务从大体上归纳为「基本 HTTP 服务」、「高级 HTTP 服务」和「邮件服务」等三大类。

基本HTTP服务

Nginx 可以提供基本 HTTP 服务,可以作为 HTTP 代理服务器和反向代理服务器,支持通过缓存加速访问,可以完成简单的负载均衡和容错,支持包过滤功能,支持 SSL 等。

  • 处理静态文件、处理索引文件以及支持自动索引
  • 提供反向代理服务器,并可以使用缓存加上反向代理,同时完成负载均衡和容错
  • 提供对 FastCGI、memcached 等服务的缓存机制,,同时完成负载均衡和容错
  • 使用 Nginx 的模块化特性提供过滤器功能。Nginx 基本过滤器包括 gzip 压缩、ranges 支持、chunked 响应、XSLT、SSI 以及图像缩放等。其中针对包含多个 SSI 的页面,经由 FastCGI 或反向代理,SSI 过滤器可以并行处理
  • 支持 HTTP 下的安全套接层安全协议 SSL.
  • 支持基于加权和依赖的优先权的 HTTP/2

高级HTTP服务

  • 支持基于名字和 IP 的虚拟主机设置
  • 支持 HTTP/1.0 中的 KEEP-Alive 模式和管线(PipeLined)模型连接
  • 自定义访问日志格式、带缓存的日志写操作以及快速日志轮转
  • 提供 3xx~5xx 错误代码重定向功能
  • 支持重写(Rewrite)模块扩展
  • 支持重新加载配置以及在线升级时无需中断正在处理的请求
  • 支持网络监控
  • 支持 FLV 和 MP4 流媒体传输

邮件服务

Nginx 提供邮件代理服务也是其基本开发需求之一,主要包含以下特性:

  • 支持 IMPA/POP3 代理服务功能
  • 支持内部 SMTP 代理服务功能

Nginx常用的功能模块

  • 静态资源部署:核心功能
  • Rewrite 地址重写:用到正则表达式
  • 反向代理
  • 负载均衡:轮询、加权轮询、ip_hash、url_hash、fair 等算法
  • Web 缓存
  • 环境部署:搭建高可用的环境
  • 用户认证模块 …
  • Nginx 的核心组成
    • nginx 二进制可执行文件(启动、关闭、加载 Nginx)
    • nginx.conf 配置文件
    • error.log 错误的日志记录
    • access.log 访问日志记录

正向代理与反向代理