一、Nginx简介
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器 [13],同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,公开版本1.19.6发布于2020年12月15日。 [11]
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2022年01月25日,nginx 1.21.6发布。 [12]
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。
二、Nginx入门
1、静态资源服务
通过本地文件系统提供服务
2、反向代理
- Nginx的强大性能:我们自己开发的应用,在面临用户量逐步增加的时候,可能会需要扩容此时就需要一个方向代理服务器,把用户的请求代理到我们的应用。
- 缓存:由于链路的增加,响应的时延会变长,所以通常我们会把一些基本不变,或者短时间能不变的数据存到nginx缓存中,从而来提高性能。
- 负载均衡:由于我们有多个应用,我们期望将流量均匀的打倒不同的服务,所以需要负载均衡功能。
3、API服务
OpenResty:有一些场景我们需要nginx直接访问数据库、或者redis等,nginx也为我们提供了对应的能力。
三、Nginx优点
- 高并发、高性能:能支持十万甚至百万的并发
- 扩展性好体现在Nginx模块化设计
- 可靠性高:Nginx可以持续不断的运行数年
- 热部署:支持热部署,不用重启服务
- BSD许可证:可以基于Nginx二开
四、Nginx组成
1、Nginx二进制可执行文件
该部分由各个模块源码编译组成的一个文件
2、Nginx.conf
Nginx的配置文件
3、access.log
记录了每一条http请求的信息
4、error.log
记录了错误日志
五、安装Nginx
安装Nginx有一般有两种方式,一种是基于源码编码;另一种是用其他,例如yum、docker等。我们这里基源码编译的形式来安装Nginx
1、下载源码压缩包
官网地址:http://nginx.org/en/download.html
使用wget命令下载
http://nginx.org/download/nginx-1.26.1.tar.gz
结果如下
2、解压
tar -zxvf nginx-1.26.1.tar.gz
结果如下
3、目录介绍
- auto:存放了一些编译所需要的文件,包括类库、操作系统支持等等
- CHANGES:版本变更记录
- conf:配置文件
- configure:脚本,用于生成中间文件,在编译之前需要执行
- contrib:nginx的contrib文件夹主要用于存放开源爱好者共享的代码。这个文件夹包含了各种有用的脚本和工具
- html:提供了两个标准的html文件,默认的界面、500错误等
- man:帮助文件
- src:nginx的源码
4、安装Nginx
首先在编译前可以查看Nginx编译支持哪些参数。
./configure --help
部分参数如下
1、先生成中间文件,这里我们指定路径为 /usr/local/nginx
./configure --prefix = /usr/local/nginx
很明显报错了,因为nginx的编译依赖于GCC、PCRE、ZLIB、OPENSSL环境,这里要先安装一下,命令如下
yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
重新执行刚才的命令
./configure --prefix = /usr/local/nginx
2、编译+安装
在上一步骤,我们完成了中间文件的生成,此时我们在执行编译和安装命令。我们可以看下生成的文件,多了一个objs文件夹,其中会有一个ngx_modules.c文件,该文件记录了哪些模块会被编译进Nginx
这里我们看一下具体会有哪些模块
接着我们继续编译和安装Nginx,执行命令 make
最后执行安装命令:make install
5、启动Nginx
进入刚才配置的目录 /usr/local/nginx
所有的脚本都放在sbin目录下,进入sbin目录
执行命令 ./nginx 执行完之后查看进程是否开启
ps -ef | grep nginx
在浏览器访问 http://ip
小结:
本文主要对Nginx做了一些简单的介绍,包括Nginx的使用场景、优点以及如何安装一个Nginx,希望对你有所帮助。