初识Nginx
简介
Nginx是一款优秀的服务器,主要的应用场景为:静态资源服务器、API服务器、反向代理服务器。Nginx作为反向代理服务器具备两个功能:高效缓存加速和负载均衡。
Nginx的优点
- 高并发与高性能并存(一般二者同时做到很难)
- 可扩展性能好(模块化设计)
- 高可靠性(一般企业用于入口负载均衡,可以长时间运行而不宕机)
- 热部署(可以平滑升级nginx,而不用粗暴重启在线业务,不用断开已建立的连接)
- BSD许可证(该授权表示可以对Nginx进行修改定制并用于商业用途)
Nginx的组成
- nginx二进制可执行文件
- nginx.conf配置文件
- access.log访问日志
- error.log错误日志
Nginx版本发布
- version 版本号(单数为mainline非稳定版本,双数为stable稳定版本)
- feature 新增功能说明
- bug bugfig信息
- change 重构内容
目前流行的Nginx发行版:
- nginx
- nginxplus(nginx的商业版)
- Tengine(alibaba公司发布的基于nginx二次开发的版本)
- openresty(支持lua的nginx版本)
- openresty商业版
编译自己的nginx
nginx采用模块化的设计,因此有很多内置及非内置优秀的nginx模块,我们可以在编译安装时通过一些选项定制nginx,选择去掉或新增编译某些nginx模块。
1.下载nginx源码
登录nginx官网<nginx.org>下载源码并解压,一般来说选择稳定版本即双数版本号的版本。
源码目录
- auto/ # 存放一些安装辅助工具,比如系统信息检测脚本等
- CHANGES # 说明本次版本的特性和一些bugfix信息
- CHANGES.ru # 俄语版本
- conf/ # nginx的配置文件示例,安装后会自动拷入安装目录下
- contrib/ # 用于vim的语法高亮设置,需要手动拷入vim的相关目录(非必须)
- configure # 安装过程需要用到的可执行配置脚本,./configure执行
- html/ #存放了两个标准的html,50x.html,index.html
- man/ # linux下的nginx帮助手册
- src/ # nginx的源码
2.编译
1 | ./configure --help # 查看可配置参数 |
1 | ./configure --prefix=/path/to/install/nginx/ |
1 | make |
Nginx配置文件
语法简介
- nginx配置文件以指令和指令块组成;
- 指令以;结尾
- 指令块包含在{}中
- 可以用include指令包含另一个配置文件的内容
- #表示注释
- $表示引用nginx自身变量
- 部分指令的参数支持正则表达式
配置参数
- 时间单位:ms, s, m, h, d, w, M, y
- 空间单位: , k/K, m/M, g/G (空默认为字节)
http指令块
http指令块中包含http,server, location, upstream (待矫正!!!!!!)Nginx命令行
1
2
3
4
5
6
7
8
9
10
11
12
13nginx -s reload # 重载配置文件
nginx -?/ nginx -h # 帮助文档
nginx -c /path/to/conffile # 重新指定配置文档路径(不使用默认配置)
nginx -g xxxxxx #指定配置指令(想要单独覆盖某条配置时使用)
nginx -p /path/to/run # 指定nginx的运行目录
nginx -s xxx # 发送信号
信号类型:
1.stop(立即停止);
2.quit(优雅退出);
3.reload(重新加载配置文件);
4.reopen(重新记录日志)
nginx -t/ nginx -T # 测试配置文件是否存在语法错误
nginx -v # 版本信息