目录
何为nginx
Nginx是一款轻量级的 web服务器、反向代理服务器 及 mail代理服务器。其特点是占有内存少,并发能力强
Nginx 功能介绍
-
静态的web资源服务器html,图片,js,css,txt等静态资源
-
http/https协议的反向代理 7层协议
-
结合FastCGI/uWSGI/SCGI等协议反向代理动态资源请求
-
tcp/udp协议的请求转发(反向代理) 4层协议
基础特性
-
模块化设计,较好的扩展性
-
高可靠性
-
支持热部署:不停机更新配置文件,升级版本,更换日志文件
-
低内存消耗:10000个keep-alive连接模式下的非活动连接,仅需2.5M内存
-
event-driven,aio,mmap,sendfile
nginx架构
Nginx 进程结构
nginx 进程分为 master(主进程),worker(子进程)
nginx 模块
模块分类
-
核心模块:是 Nginx 服务器正常运行必不可少的模块,提供错误日志记录 、配置文件解析 、事件驱动机制 、进程管理等核心功能
-
标准HTTP模块:提供 HTTP 协议解析相关的功能,比如: 端口配置 、 网页编码设置 、 HTTP响应头设置 等等
-
可选HTTP模块:主要用于扩展标准的 HTTP 功能,让 Nginx 能处理一些特殊的服务,比如:Flash 多媒体传输 、解析 GeoIP 请求、 网络传输压缩 、 安全协议 SSL 支持等
-
邮件服务模块:主要用于支持 Nginx 的 邮件服务 ,包括对 POP3 协议、 IMAP 协议和 SMTP协议的支持
-
Stream服务模块: 实现反向代理功能,包括TCP协议代理
-
第三方模块:是为了扩展 Nginx 服务器应用,完成开发者自定义功能,比如: Json 支持、 Lua 支持等
使用方式
在编译安装第一步的时候使用 ./configure --help 可以查看支持的模块
./configure --help
# 查看帮助,里面会带有可用的模块
# 提示:要在nginx的安装包中使用该命令才有用
编译安装nginx
nginx不选择yum(rpm)安装的原因
- rpm会导致系统原有的库文件被破坏,导致新的软件包无法正常安装,存在着依赖关系;源码编译安装nginx快速,安全。
- 版本控制不行,规模部署,rpm的方式搞不定,没有统一的基础设施规范;源码编译nginx具有统一的基础设施规范。
所以我们选择编译安装nginx
第一步:获取安装包
nginx的安装可以自己去其官网下载 nginx: download
也可以使用命令:
wget http://nginx.org/download/nginx-1.18.0.tar.gz
# 从 nginx 的官网下载 nginx 1.18.0 的安装包
第二步:安装依赖
一个软件的运行需要一个或者多个依赖
yum -y install gcc pcre-devel openssl-devel \
zlib-devel openssl openssl-devel
# 使用 yum install 安装 nginx 运行所需要的依赖
第三步:创建用户nginx
服务器使用该服务时多多少少会有漏洞,为了安全起见,创建用户 nginx ,将漏洞可能引发的问题限制在较小的范围内
useradd -M -s /sbin/nologin nginx
# 新建程序用户 nginx
第四步:解压安装包
tar xf nginx-1.18.0.tar.gz
# 解压 nginx 安装包
第五步:编译安装
cd /data/nginx-1.18.0/
# 进入安装包
mkdir /apps/nginx -p
# 创建目录(后续nginx的安装目录)
./configure --prefix=/apps/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--with-stream \
--with-stream_ssl_m