NGINX的三个主要应用场景
- 静态资源服务
- 通过本地文件系统提供服务
- 反向代理服务
- nginx的强大性能
- 缓存
- 负载均衡
- API服务
Nginx为什么会出现
- 互联网的数量快速增长
- 互联网的快速普及
- 全球网
- 物联网
- 摩尔定律:性能提升
- 低效Apache
- 一个链接对一个进程
nginx的优点
- 高并发,高性能
- 可扩展性好
- 高可靠性
- 热部署
- BDS许可证
nginx的组成
- Nginx二进制可执行文件
- 由各模块源码编译的一个文件
- nginx.conf配置文件
- 控制nginx的行为
- access.log访问日志
- 记录每一条http请求信息
- error.log错误日志
- 定位问题
nginx的安装
1 | nginx地址:http://nginx.org/en/download.html |
nginx的目录结构
1 | 让vim编辑的时候高亮显示 |
nginx常用配置语法
- 配置文件由指令和指令块构成
- 每条指令以;分号结尾,指令与参数间以空格符号分隔
- 指令块以{}大括号将多条指令组织在一起
- include语句允许组合多个配置文件以提升代码的可维护性
- 使用#符号添加注释,提高可读性
- 使用$符号使用变量
- 部分指令的参数支持正则表达式
配置参数
| 时间单位 | time |
|---|---|
| ms(毫秒) | milliseconds |
| s(秒) | seconds |
| m(分钟) | minutes |
| h(小时) | hours |
| d(天) | days |
| w(周) | weeks |
| M(月) | months,30 days |
| y(年) | years 365days |
| 空间单位 | |
|---|---|
| bytes | |
| k、K | kilobytes |
| m、M | megabytes |
| g、G | gigabytes |
http配置的指令块
- http
- server
- upstream
- location
Nginx命令行
- 格式:nginx -s reload
- 帮助 -? -h
- 使用指定的配置文件 -c
- 指定配置指令 -g
- 指定运行目录 -p
- 发送信号 -s
- 立刻停止 stop
- 优雅的停止: quit
- 重载配置文件 reload
- 重新开始记录日志文件 reopen
- 测试配置文件是否语法错误 -t -T
- 打印nginx的版本信息,编译信息等 -v -V
热部署
1 | 把二进制文件改名 |
日志切割
1 | 移动老日志 |
nginx搭建简单的web静态资源网站
1 | 开启gzip压缩 |
nginx反向代理
1 | listen 127.0.0.1:8000 代表只能本机的800端口访问 |
用GoAccess实现可视化并实时监控access日志
1 | 下载: apt-get install goaccess |
ssl安全协议
为nginx增加一个https证书
1 | 安装:sudo yum install certbot python2-certbot-nginx |