Nginx介绍与部署
# Nginx介绍
# 简介
Nginx是一款开源的高性能HTTP和反向代理WEB服务器软件
。它的特点是并发能力强、系统资源占用少、跨平台性好、且支持负载均衡、缓存服务、网站WEB服务等功能。
# Nginx网络模型
Nginx实现网络通讯时使用的是epoll模型,epoll模型是一个异步IO模型,并发量高大时,基本不受影响。
而Apache使用的是select模型,select模型是一个IO多路复用,该模型的轮询效率低、代价大,需要遍历整个数组才知道谁发生了变化,因此并发越大、连接数越多时,性能越低。
相比Apache,Nginx使用更少的资源,支持更多的并发连接,体现更高的效率。
# Nginx进程
- Nginx进程分类两个角色,主进程和工作进程。
nginx: master process
- 主进程,用于保证服务正常运行。- master进程会保证运行的worker进程 一直处于指定的worker进程数。
- 如果worker进程被杀掉后会被master进程重新拉起。
nginx: woker process
- 工作进程,处理用户的访问请求。
# Nginx部署
# 1. 解决软件依赖
# yum安装相关依赖
yum -y install make zlib zlib-devel gcc-c++ libtool openssl-devel pcre-devel
1
2
2
# 2. 创建相关环境
# 创建安装目录
mkdir -p /data/apps/nginx
# 创建管理用户
useradd -s /sbin/nologin -M nginx
1
2
3
4
5
2
3
4
5
# 3. 解压源代码包
# 下载源代码包,选择Stable稳定版
https://nginx.org/en/download.html
# 解压Nginx源代码
tar -xvf nginx-*.tar.gz -C ./nginx_source
1
2
3
4
5
2
3
4
5
# 4. 编译安装
# 切换到源代码目录以方便进行编译安装
cd ./nginx_source
# --prefix=[程序安装路径] --user=[NGINX管理用户] --group=[NGINX管理用户组]
# 另外还可以指定一些其他模块,很多模块都是默认开启的,一般不需要额外配置
./configure --prefix=/data/apps/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-pcre
# 编译成二进制文件
make
# 将编译的二进制文件安装到/bin中
make install
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 5. 验证是否部署成功
# Nginx相关文件会存放在指定的程序安装目录中
ls /data/apps/nginx/
# 验证命令是否正常可用
nginx -v
1
2
3
4
5
2
3
4
5
# Nginx目录结构
# ./nginx/sbin/
- 存放Nginx二进制命令文件。
# ./nginx/logs/
- 存放Nginx运行日志、访问日志、错误日志等文件。
# ./nginx/html/
- 存放Nginx默认站点文件。
# ./nginx/conf/
- 存放Nginx配置文件、接口相关文件、支持的资源拓展配置文件、编码转换映射配置文件等
nginx.conf
- 主配置文件conf.d
- 存放虚拟主机配置文件,会在主配置文件中导入fastcgi_params、scgi_params、uwsgi_params
- 接口配置文件koi-utf、koi-win、win-utf
- 编码转换映射配置文件mime.types
- 定义支持的资源扩展名的配置文件