Nginx
一、 Ngnix是什么
- Nginx (“engine x”) 是一个高性能的 静态HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。
- 第一个公开版本0.1.0发布于2004年10月4日。
- 将其源代码以类BSD许可证的形式发布,因它的稳定性,丰富的功能集,示例配置文件和低系统资源的消耗闻名
- 官方测试nginx能够支撑5万并发链接,并且cpu,内存等资源消耗非常低,运行非常稳定
二、Nginx的作用
- 搭建虚拟主机
- 服务的反向代理
- 在反向代理中配置集群的负载均衡
- 在反向代理种配置集群的动静分离
2.1 正向代理
正向代理是对客户端的代理。客户端想要访问服务端获取资源,但是由于某些原因不能直接访问,所以可以由中间主机搭建桥梁来实现资源的访问。此时就可以称主机为客户端的正向代理服务器
![在这里插入图片描述](https://img-blog.csdnimg.cn/7d53135e866940529dfa8ca9bac4e707.png)
2.2 反向代理
反向代理方式是指以代理服务器来接受internet上的连接请求,然后将请求方式转发给内部网络上的服务器,并将从服务器上的得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
三、Nginx下载与安装
3.1 Nginx下载
官网下载Nginx软件http://nginx.org
Nginx 官方提供了三个类型的版本:
Mainline Version:主线版,是最新版,但未经过过多的生产测试。
Stable Version:稳定版,生产环境使用版本。
Legacy Version:老版本。
建议下载Stable Version。
3.2 Nginx的源码安装
3.2.1 安装Nginx的依赖
nginx是c语言开发的,建议在linux上运行,现在使用的环境是Centos 7
1.gcc
安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,需要安装gcc
yum install -y gcc make automake
2.pcre
PCRE是一个perl库,包括perl兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装Pcre库
yum install -y pcre pcre-devel
注:pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库
3.zlib
zlib库提供了很多种压缩和解压的方式,nginx使用zlib对http包下的内容进行gzip,所以需要在linux上安装zlib库
yum install -y zlib zlib-devel
4.Openssl
Openssl是一个强大的安全套接字层密码库,包括主要的密码算法,常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其他目的。
nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
yum install -y openssl openssl-devel
5.统一安装依赖环境命令:
yum -y install gcc make automake pcre-devel zlib zlib-devel openssl openssl-devel
3.2.2 安装 Nginx
-
创建存放源文件的文件夹
首先在目录/opt下创建apps目录,用于存放源文件以及解压后的文件
-
上传Nginx到创建的目录下
-
解压Nginx
[root@node1 apps]# pwd /opt/apps [root@node1 apps]# ls nginx-1.20.1.tar.gz [root@node1 apps]# tar -zxvf nginx-1.20.1.tar.gz [root@node1 apps]# cd nginx-1.20.1
进入到 Nginx 解压包目录/opt/apps/nginx-1.20.1 目录中,查看 Nginx 的目录。
其中各个目录中存放的文件作用为:
auto :存放Nginx自动安装的相关文件 conf :存放Nginx服务器配置的文件 configure :命令,用于对即将安装的软件的配置,完成makefile编译文件的生成 contrib :存放有其他机构贡献的文档资料 html :存放Nginx欢迎界面 man :manual,手册,存放Nginx帮助文档 src :存放Nginx源码生成
-
生成makefile
在Nginx解压的目录下运行make命令,用于完成编译。但此时会给出提示:没有指定目标,并且没有发现编译文件makefile
编译命令make需要根据编译文件的makefile进行编译,所以在编译之前需要先生成编译文件makefile。使用configure命令可以生成该文件。
configure命令需要配置的参数可以使用–help查看,这些参数可以分成三类:
- 第一类:基本信息的配置
–prefix:Nginx 安装目录。注意,安装目录与解压目录不一样
–sbin-path:Nginx 命令文件
–modules-path:Nginx 模块存放路径
–conf-prefix:Nginx 配置文件存放路径
–pid-path:Nginx 的进程 id 文件
–error-log-path:错误日志文件
–http-log-path:http访问日志文件
- 第二类:默认没有安装,可以指定安装的模块,使用–with 开头。Nginx 的高扩展性就体现在这里。
- 第三类:默认已经安装,可以指定卸载的模块,使用–without 开头。
然后进行配置。命令中每一行的最后添加反斜杠表示当前命令没有结束,回车不会执行命令。执行成功后,会给出配置报告。
[root@node1 nginx-1.20.1]# mkdir -p /var/temp/nginx/client
[root@node1 nginx-1.20.1]# pwd
/opt/apps/nginx-1.20.1
[root@node1 nginx-1.20.1]# ./configure \
--prefix=/usr/local/nginx \
--pid-path=/usr/local/nginx/logs/nginx.pid \
--error-log-path=/usr/local/nginx/logs/error.log \
--http-log-path=/usr/local/nginx/logs/access.log \
--with-http_ssl_module \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi
配置成功后,再次查看 Nginx 解压目录,发现其中多出了一个文件 Makefile。后面的编译就是依靠该文件进行的。
-
编译安装
这是两个命令,make为编译,make install为安装命令,可以分别执行。&&表示将两个命令连接起来,会在前面命令执行结束后执行后面的命令
make && make install