作者:狮子也疯狂专栏:《Nginx从入门到超神》坚持做好每一步,幸运之神自然会降临在你的身上
目录
- 一. 🦁 前言
- Ⅰ. 🐇 为啥我们要使用Nginx?
- 二. 🦁 搭建流程
- Ⅰ. 🐇 环境准备
- Ⅱ. 🐇 安装准备
- 2.1 安装命令
- 2.2 参数解释
- Ⅲ. 🐇 Nginx安装
- 3.1 下载源码
- 3.2 版本介绍
- 3.3 源码编译
- 3.3.1 解压
- 3.3.2 生成 makefile
- 3.3.3 编译安装
- 三. 🦁 总结
一. 🦁 前言
Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。Nginx 专为性能优化而开发,使用异步非阻塞事件驱动模型
。
Ⅰ. 🐇 为啥我们要使用Nginx?
互联网飞速发展的今天,大用户量高并发已经成为互联网的主体.怎样能让一个网站能够承载几万个或几十万个用户的持续访问呢?
我们所接触的单机架构已经不适应现状,一个Tomcat 默认配置的最大请求数是150,也就是说同时支持150个并发。具体能承载多少并发,须要看硬件的配置,线程CPU越多性能越高,分配给JVM的内存越多性能也就越高,但也会加剧GC的负担。
所以,我们引入了反向代理负载均衡。如下:
这样就可以通过多个web服务器来平均分担压力,并发过来的请求被平均分配到多个后台web服务器来处理。这里就需要使用到Nginx来搭建负载均衡服务器。
二. 🦁 搭建流程
Ⅰ. 🐇 环境准备
- Linux操作系统:ContOs 7.6
tips:
必须确认防火墙关闭,网络可用以及yum可用。
Ⅱ. 🐇 安装准备
由于Nginx是一个C语言编写的项目,所以我们要安装C语言编译环境——gcc。
2.1 安装命令
yum -y install gcc make automake pcre-devel zlib zlib-devel openssl openssl-devel
2.2 参数解释
- gcc:编译依赖gcc环境
- pcre:PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 Perl 兼容的正则表达式库。
- zlib:zlib库提供了很多种压缩和解压缩的方式,Nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
- Openssl:OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
Ⅲ. 🐇 Nginx安装
3.1 下载源码
我们需要访问Nginx官网,下载Nginx软件:下载 点击之后,我们会看到以下页面,这个就是Nginx的官网。点击箭头指向进入下载页面。
等待跳转后,我们就会来到以下这个下载页面,下载我们所需要的版本。点击下载即可。
3.2 版本介绍
官网提供了三个类型的版本:
- Mainline Version:主线版,是最新版,但未经过过多的生产测试
- Stable Version:稳定版,生产环境使用版本。
- Legacy Version:老版本。
我们这里采用稳定版本。下载完成之后通过Xftp上传到虚拟机的/opt目录下
3.3 源码编译
3.3.1 解压
解压到/usr/local/的目录下。
[root@node1 opt]# tar -zxvf Nginx- 1.20.1.tar.gz -C /usr/local/
进入到 Nginx 解压包目录中,查看Nginx 的目录。
[root@node1 opt]# cd /usr/local/Nginx-1.20.1/
tips:
各个目录中存放的文件作用为:
auto:存放 Nginx 自动安装的相关文件
conf:存放 Nginx 服务器配置文件
configure:命令,用于对即将安装的软件的配置,完成
makefile 编译文件的生成
contrib:存放由其他机构贡献的文档材料
html:存放 Nginx 欢迎页面
man:manual,手册,存放 Nginx 帮助文档
src:存放 Nginx 源码
3.3.2 生成 makefile
编译命令 make 需要根据编译文件 makefile 进行编译,所以在编译之前需要先生成编译文件 makefile。使用 configure 命令可以生成该文件。其中,我们可以查看一下configure的参数作用
configure 参数:
- –prefix:Nginx 安装目录。注意,安装目录与解压目录不一样
- –sbin-path:Nginx 命令文件
- –modules-path:Nginx 模块存放路径
- –conf-prefix:Nginx 配置文件存放路径
- –pid-path:Nginx 的进程 id 文件
- –error-log-path:错误日志文件
- –http-log-path:http访问日志文件
生成命令及步骤:
需要自己生成一个目录——/var/temp/nginx/client
[root@node1 Nginx-1.20.1]# mkdir -p /var/temp/nginx/client
[root@node1 Nginx-1.20.1]# pwd
/usr/local/nginx-1.20.1
[root@node1 Nginx-1.20.1]# ./configure \
--prefix=/usr/local/nginx \
--pid-path=/usr/local/nginx/logs/nginx.pid \
--error-logpath=/usr/local/nginx/logs/error.log \
--http-logpath=/usr/local/nginx/logs/access.log \
--with-http_ssl_module \
--with-http_gzip_static_module \
--http-client-body-temppath=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temppath=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi
3.3.3 编译安装
make 为编译命令,make install 为安装命令,分别执行。
make
make install
三. 🦁 总结
这样Nginx就安装完成了,你都学会了吗?接下来让我们来开启一个Nginx快乐之旅叭。