引言
Nginx 是十分轻量级的
开源
、高性能
、高可靠
的HTTP和反向代理服务器,性能是 Nginx 最重要的考量,其占用内存少、处理高并发能力是十分强大的,能支持高达 5w 个并发连接数,最重要的是,Nginx 是免费的并可以商业化,配置使用也比较简单
一、Nginx基础扫盲
Nginx的发行版本
和Linux一样,Nginx有一些常用的发行版,我们来看一下,本文主要是对Nginx开源版本的学习
-
简单的web服务器、反向代理、负载均衡
-
把Nginx和Lua脚本进行了一个整合,对微服务和云原生整合较好
-
OpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关
-
Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。
Nginx的功能和特性
Nginx有以下三个基础功能,本文主要做到快速上手Nginx,这些功能会在其他篇章详细整理
- 可以作为静态页面的 web 服务器
- 反向代理
- 负载均衡
Nginx 做为 HTTP 服务器,有以下几项基本特性:
- 支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新
- Nginx 以事件驱动的方式编写,有非常好的性能,同时可以做非常高效的反向代理、负载均衡服务器了
- 处理静态文件,索引文件以及自动索引;打开文件描述符缓冲.
- 无缓存的反向代理加速,简单的负载均衡和容错.
- FastCGI,简单的负载均衡和容错
Nginx 的缺点
-
Nginx 仅能支持http、https和Email协议,这样就在适用范围上面小些
-
对后端服务器的健康检查,只支持通过端口来检测,不支持通过 url来检测。不支持 Session 的直接保持,但能通过 ip_hash 来解决
二、Nginx安装与配置
一般使用解压包方式安装,也是我们主要使用的安装方式,另外可以通过yum命令安装(下文有提到)
step1.Linux环境检查
Loki以后都将在Linux环境下学习整理,因此你需要有一定的Linux基础,不用担心,Loki在写这篇文章时对Linux也是一知半解的状态
请自行准备好一个可以连通网络的虚拟机并且搭载CentOS7系统,你可以通过
-
VMWare
虚拟机搭建CentOS7环境 -
购买云服务器,装载CentOS7镜像
推荐阅读搭建云服务器Linux学习环境
除此之外,我们需要安装XShell
和Xftp
这两款软件用于控制远端服务器
安装Nginx前,我们要先安装好它的依赖环境,就像Java程序需要运行在JVM上一样,nginx安装依赖以下环境,因此要检查是否安装,如果没有则需要安装这些环境
GCC
GCC编译器是Linux下最常用的C/C++编译器,它以gcc命令的形式呈现
openssl-devel
openssl
是多功能命令工具,用于生成密钥,创建数字证书,手动加密解密数据
nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库
pcre-devel
PCRE(Perl Compatible Regular Expressions)是一个轻量级的Perl函数库,包括 perl 兼容的正则表达式库。它比Boost之类的正则表达式库小得多。PCRE十分易用,同时功能也很强大,性能超过了POSIX正则表达式库和一些经典的正则表达式库
zlib-devel
zlib是提供数据压缩用的函式库,由Jean-loup Gailly与Mark Adler所开发,初版0.9版在1995年5月1日发表。zlib使用DEFLATE算法,最初是为libpng函式库所写的,后来普遍为许多软件所使用。此函式库为自由软件,使用zlib授权。截至2007年3月,zlib是包含在Coverity的美国国土安全部赞助者选择继续审查的开源项目
-
gcc安装
检查是否安装
gcc --version
已安装会显示版本号,未安装执行在线安装指令
yum install gcc-c++
-
PCRE 安装
查看是否安装
rpm -qa pcre
已安装会显示版本号,未安装执行在线安装指令
yum install -y pcre pcre-devel
-
zlib 安装
查看是否安装
yum list installed | grep zlib*
已安装会显示版本号,未安装执行在线安装指令
yum install -y zlib zlib-devel
以上环境没有问题之后,我们来安装Nginx
step2.安装Nginx
官方下载地址:http://nginx.org/en/download.html
在本机下载以后通过xftp上传到Linux
服务器,执行以下命令
命令 | 功能 |
---|---|
./configure --prefix=/usr/local/nginx |
配置Nginx环境 |
make |
编译 |
make install |
安装 |
安装完nginx后,会在路径 /usr/local
下生成 nginx 文件夹
进入这个目录
cd /usr/local/nginx
ls
查看目录结构,建议自行去看看这些文件夹
sbin
目录(里面有两个文件:nginx
和nginx.old
)conf
目录,Nginx的配置文件目录,其中**nginx.conf
**是主配置文件
step3.启动Nginx服务
#进入nginx下的sbin目录
cd /usr/local/nginx/sbin
#启动Nginx服务,./表示是当前目录
./nginx
如果访问你的Linux主机的ip地址能看到这个界面,说明Nginx服务启动成功
三、安装的其他问题
防火墙问题导致无法访问Nginx
🚀 因为防火墙问题,在 windows 系统中访问 linux 中 nginx,默认不能访问的
因此需要开放入口规则,即开放80 端口,操作如下
查看开放的端口号<